diff --git a/9 Algorithms Job Interview/2 链表.md b/9 Algorithms Job Interview/2 链表.md index 137a8ae..8cb3f70 100644 --- a/9 Algorithms Job Interview/2 链表.md +++ b/9 Algorithms Job Interview/2 链表.md @@ -95,10 +95,9 @@ p->next=NULL。此时,原单链表可以看作两条单链表,一条从head ## 复杂链表的复制 -题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外, -还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下: +题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下: ``` - struct ComplexNode +struct ComplexNode { int m_nValue; ComplexNode* m_pNext; @@ -122,8 +121,7 @@ struct ListNode }; ``` -分析: -第一个公共节点,也就是2个链表中的节点的m_pNext 指向的同一个节点。 +分析:第一个公共节点,也就是2个链表中的节点的m_pNext 指向的同一个节点。 1. 先遍历2个链表,得到各自的长度,和差sub 2. 长链表先遍历sub个节点,然后2个节点一起遍历 @@ -149,6 +147,7 @@ struct ListNode{ ## 在O(1)时间内删除链表结点 + 题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点。链表结点的定义如下: ``` @@ -185,15 +184,6 @@ struct node{ -## 链表和数组的区别在哪里? - -分析:主要在基本概念上的理解。 -但是最好能考虑的全面一点,现在公司招人的竞争可能就在细节上产生, -谁比较仔细,谁获胜的机会就大。 - - - - diff --git a/9 Algorithms Job Interview/4 数值问题.md b/9 Algorithms Job Interview/4 数值问题.md index 8544f52..558598d 100644 --- a/9 Algorithms Job Interview/4 数值问题.md +++ b/9 Algorithms Job Interview/4 数值问题.md @@ -77,6 +77,20 @@ tmp[i] = tmp[i]>=0 ? tmp[i] : tmp[i]+16; ``` +## ipv4 转 int + +比如: 10.67.81.35 , 转为int 为 + +思路: + + +``` +代码 +``` + +那么,int 转 ipv4 如何解呢? + + ## 判断一个自然数是否是某个数的平方 diff --git a/9 Algorithms Job Interview/5 数组数列问题.md b/9 Algorithms Job Interview/5 数组数列问题.md index 5c4d002..5f11697 100644 --- a/9 Algorithms Job Interview/5 数组数列问题.md +++ b/9 Algorithms Job Interview/5 数组数列问题.md @@ -109,6 +109,23 @@ int findaddends(int *data,int length,int sum,int *a,int *b); 巧妙解法:数组2端向中间扫描,复杂度O(N) +## 求连续子数组和为m的组合 + +数组 [2,3,1,2,4,3]求连续子数组sum=7, 结果[1,2,4] [3,4] + +* 暴力遍历 +* 滑动窗口, 左指针,右指针 + +``` +if sum