From 3315c86c10a464556746a7bd7714389a8590d407 Mon Sep 17 00:00:00 2001 From: ranwenjie Date: Mon, 2 Aug 2021 13:09:06 +0800 Subject: [PATCH] update dir --- 2 List/ZipList.md | 11 +++-- .../{字符串.md => 1 字符串.md} | 0 .../{链表.md => 2 链表.md} | 43 +++++++++++++------ .../{堆和栈.md => 3 堆和栈.md} | 2 +- .../{数值问题.md => 4 数值问题.md} | 0 .../{数组数列问题.md => 5 数组数列问题.md} | 0 .../{矩阵.md => 6 矩阵.md} | 0 .../{二叉树.md => 7 二叉树.md} | 0 9 Algorithms Job Interview/{图.md => 8 图.md} | 0 .../{智力思维训练.md => 9 智力思维训练.md} | 0 .../{系统设计.md => 91 系统设计.md} | 0 9 Algorithms Job Interview/README.md | 3 ++ 9 Algorithms Job Interview/leetcode.md | 13 ------ 9 Algorithms Job Interview/九度OJ.md | 5 --- .../海量数据处理.md | 0 15 files changed, 41 insertions(+), 36 deletions(-) rename 9 Algorithms Job Interview/{字符串.md => 1 字符串.md} (100%) rename 9 Algorithms Job Interview/{链表.md => 2 链表.md} (91%) rename 9 Algorithms Job Interview/{堆和栈.md => 3 堆和栈.md} (99%) rename 9 Algorithms Job Interview/{数值问题.md => 4 数值问题.md} (100%) rename 9 Algorithms Job Interview/{数组数列问题.md => 5 数组数列问题.md} (100%) rename 9 Algorithms Job Interview/{矩阵.md => 6 矩阵.md} (100%) rename 9 Algorithms Job Interview/{二叉树.md => 7 二叉树.md} (100%) rename 9 Algorithms Job Interview/{图.md => 8 图.md} (100%) rename 9 Algorithms Job Interview/{智力思维训练.md => 9 智力思维训练.md} (100%) rename 9 Algorithms Job Interview/{系统设计.md => 91 系统设计.md} (100%) delete mode 100644 9 Algorithms Job Interview/leetcode.md delete mode 100644 9 Algorithms Job Interview/九度OJ.md rename {9 Algorithms Job Interview => 91 Algorithms In Big Data}/海量数据处理.md (100%) diff --git a/2 List/ZipList.md b/2 List/ZipList.md index 7e60a88..3763ad2 100644 --- a/2 List/ZipList.md +++ b/2 List/ZipList.md @@ -4,13 +4,19 @@ ZipList 压缩列表 redis 中的 sset(有序集合) 使用跳表来实现,为什么不是用红黑树,而是跳表实现sset,带着这样的疑问,有了本文。 -## 跳表理解 +## 理解 有哪些应用场景? -## 跳表的结构 + +#### 为什么使用 + + + + +## 结构 @@ -19,7 +25,6 @@ ZipList 压缩列表 redis 中的 sset(有序集合) 使用跳表来实现,为 -## sset 为什么使用 跳表 diff --git a/9 Algorithms Job Interview/字符串.md b/9 Algorithms Job Interview/1 字符串.md similarity index 100% rename from 9 Algorithms Job Interview/字符串.md rename to 9 Algorithms Job Interview/1 字符串.md diff --git a/9 Algorithms Job Interview/链表.md b/9 Algorithms Job Interview/2 链表.md similarity index 91% rename from 9 Algorithms Job Interview/链表.md rename to 9 Algorithms Job Interview/2 链表.md index a521e95..137a8ae 100644 --- a/9 Algorithms Job Interview/链表.md +++ b/9 Algorithms Job Interview/2 链表.md @@ -8,7 +8,7 @@ * 2个链表合并 -#### 判断俩个链表是否相交 +## 判断俩个链表是否相交 给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。 @@ -18,16 +18,17 @@ 2.如果需要求出俩个链表相交的第一个节点列? -#### 输出两个非降序链表的并集 +## 输出两个非降序链表的并集 请修改append函数,利用这个函数实现: 两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5 。另外只能输出结果,不能修改两个链表的数据。 -#### 输出链表中倒数第k个结点 +## 输出链表中倒数第k个结点 题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。 + 链表结点定义如下: struct ListNode { @@ -36,7 +37,7 @@ struct ListNode }; -#### 链表排序 +## 链表排序 Given a head pointer pointing to a linked list ,please write a function that sort the list in increasing order. You are not allowed to use temporary array or memory copy (微软面试题) @@ -52,7 +53,7 @@ Node * sort_link_list_increasing_order (Node *pheader): ``` -#### 给定单链表,检测是否有环。 +## 给定单链表,检测是否有环。 使用两个指针p1,p2从链表头开始遍历,p1每次前进一步,p2每次前进两步。如果p2到达链表尾部,说明无环,否则p1、p2必然会在某个时刻相遇(p1==p2),从而检测到链表中有环。 @@ -75,7 +76,7 @@ p->next=NULL。此时,原单链表可以看作两条单链表,一条从head 于是运用题二的方法,我们找到它们的第一个交点即为所求。 -#### 删除链表中的p节点 +## 删除链表中的p节点 只给定单链表中某个结点p(并非最后一个结点,即p->next!=NULL)指针,删除该结点。 @@ -86,13 +87,13 @@ p->next=NULL。此时,原单链表可以看作两条单链表,一条从head 接下来将p中的数据copy入q中,然后再将要插入的数据记录在p中。都可以做到0(1)复杂度 -#### 链表反转 +## 链表反转 三个指针,遍历一遍(0(n)复杂度 -#### 复杂链表的复制 +## 复杂链表的复制 题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外, 还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下: @@ -110,7 +111,7 @@ p->next=NULL。此时,原单链表可以看作两条单链表,一条从head -#### 找出两个链表的第一个公共结点 +## 找出两个链表的第一个公共结点 题目:两个单向链表,找出它们的第一个公共结点。链表的结点定义为: ``` @@ -131,7 +132,7 @@ struct ListNode -#### 从尾到头输出链表 +## 从尾到头输出链表 输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下: @@ -147,7 +148,7 @@ struct ListNode{ 思路三: 递归实现,将printf语句放在递归调用后面。果然妙极。。 -#### 在O(1)时间内删除链表结点 +## 在O(1)时间内删除链表结点 题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点。链表结点的定义如下: ``` @@ -165,25 +166,26 @@ void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted); 保存下一个节点的值tmp,删除下一个节点,当前节点=tmp -#### 将两链表中data值相同的结点删除 +## 将两链表中data值相同的结点删除 有双向循环链表结点定义为: + ``` struct node{ int data; struct node *front,*next; }; -```` +``` 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除。 -#### 链表和数组的区别在哪里? +## 链表和数组的区别在哪里? 分析:主要在基本概念上的理解。 但是最好能考虑的全面一点,现在公司招人的竞争可能就在细节上产生, @@ -191,3 +193,16 @@ struct node{ + + + + + + + + + + + + + diff --git a/9 Algorithms Job Interview/堆和栈.md b/9 Algorithms Job Interview/3 堆和栈.md similarity index 99% rename from 9 Algorithms Job Interview/堆和栈.md rename to 9 Algorithms Job Interview/3 堆和栈.md index 926492e..5546d04 100644 --- a/9 Algorithms Job Interview/堆和栈.md +++ b/9 Algorithms Job Interview/3 堆和栈.md @@ -1,5 +1,5 @@ -##堆和栈 +# 堆和栈 栈的数据结构 diff --git a/9 Algorithms Job Interview/数值问题.md b/9 Algorithms Job Interview/4 数值问题.md similarity index 100% rename from 9 Algorithms Job Interview/数值问题.md rename to 9 Algorithms Job Interview/4 数值问题.md diff --git a/9 Algorithms Job Interview/数组数列问题.md b/9 Algorithms Job Interview/5 数组数列问题.md similarity index 100% rename from 9 Algorithms Job Interview/数组数列问题.md rename to 9 Algorithms Job Interview/5 数组数列问题.md diff --git a/9 Algorithms Job Interview/矩阵.md b/9 Algorithms Job Interview/6 矩阵.md similarity index 100% rename from 9 Algorithms Job Interview/矩阵.md rename to 9 Algorithms Job Interview/6 矩阵.md diff --git a/9 Algorithms Job Interview/二叉树.md b/9 Algorithms Job Interview/7 二叉树.md similarity index 100% rename from 9 Algorithms Job Interview/二叉树.md rename to 9 Algorithms Job Interview/7 二叉树.md diff --git a/9 Algorithms Job Interview/图.md b/9 Algorithms Job Interview/8 图.md similarity index 100% rename from 9 Algorithms Job Interview/图.md rename to 9 Algorithms Job Interview/8 图.md diff --git a/9 Algorithms Job Interview/智力思维训练.md b/9 Algorithms Job Interview/9 智力思维训练.md similarity index 100% rename from 9 Algorithms Job Interview/智力思维训练.md rename to 9 Algorithms Job Interview/9 智力思维训练.md diff --git a/9 Algorithms Job Interview/系统设计.md b/9 Algorithms Job Interview/91 系统设计.md similarity index 100% rename from 9 Algorithms Job Interview/系统设计.md rename to 9 Algorithms Job Interview/91 系统设计.md diff --git a/9 Algorithms Job Interview/README.md b/9 Algorithms Job Interview/README.md index 21dbcb7..d63cebd 100644 --- a/9 Algorithms Job Interview/README.md +++ b/9 Algorithms Job Interview/README.md @@ -100,6 +100,9 @@ +[九度OJ](http://ac.jobdu.com/index.php) +[leetcode 题目](https://leetcode.com/) + diff --git a/9 Algorithms Job Interview/leetcode.md b/9 Algorithms Job Interview/leetcode.md deleted file mode 100644 index 634b1fb..0000000 --- a/9 Algorithms Job Interview/leetcode.md +++ /dev/null @@ -1,13 +0,0 @@ - -题目来自[leetcode](https://leetcode.com/) - - -[LeetCode题解C++版](https://github.com/soulmachine/leetcode), 151道题完整版 - -#### Minimum Height Trees - - - -#### Additive Number - - diff --git a/9 Algorithms Job Interview/九度OJ.md b/9 Algorithms Job Interview/九度OJ.md deleted file mode 100644 index b8f5dca..0000000 --- a/9 Algorithms Job Interview/九度OJ.md +++ /dev/null @@ -1,5 +0,0 @@ - -题目来自 [九度OJ](http://ac.jobdu.com/index.php) - - - diff --git a/9 Algorithms Job Interview/海量数据处理.md b/91 Algorithms In Big Data/海量数据处理.md similarity index 100% rename from 9 Algorithms Job Interview/海量数据处理.md rename to 91 Algorithms In Big Data/海量数据处理.md