暴力解法O(n^4),太恐怖了。 3Sum思路:转化,降维,排序+两层外循环内部两指针(一左一右),O(n^3)。 出错: Input:[0,0,0,0] 0 Output:[] Expected:[[0,0,0,0]] 查错的过程对 if(i==0||(i>0&&nums[i]!=nums[i-1 ...
分类:
其他好文 时间:
2018-11-28 22:25:05
阅读次数:
230
删除插入时不需要两指针联动,因为使用的指针为p->next->data与key比较,找到key后让delp=p->next;然后做删除操作
分类:
其他好文 时间:
2018-08-05 11:03:35
阅读次数:
147
链表的删除,需要两指针联动,作用是为了断链与挂链,因为现在链表是单向的,无法表示上一个结点,需要考虑删除的结点是否是头结点,无需考虑删除的是否是尾结点
分类:
其他好文 时间:
2018-08-03 10:38:59
阅读次数:
122
Emily the entrepreneur has a cool business idea: packaging and selling snow?akes. She has devised a machine that captures snow?akes as they fall, and ...
分类:
其他好文 时间:
2018-07-31 19:31:37
阅读次数:
204
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意:不能使用代码库中的排序函数来解决这道题。 示例: 进阶: 一个直观的解决方案是使用计数排序的两 ...
分类:
其他好文 时间:
2018-07-18 21:37:51
阅读次数:
117
原来的代码判断是否有环比较的是快慢指针是否有朝一日指向的节点的值相同, 而这是有漏洞的,当输入的节点值有重复时,也可能使代码作出有环的误判,现修改其判断指标为当两个指针的地址相同时,则有环。 然而快慢指针缺点略大,两指针极易错过,当环巨大时,耗费过多的时间,也许存在优化的可能,改天再写吧。。。 in ...
分类:
其他好文 时间:
2018-06-26 00:45:56
阅读次数:
168
下面是方法二: 第一种方法是找出两链表的长度差,把长链的指针向后移动,使得两指针以后的链长相等,再开始比较,找到公共节点。 第二种方法是把两个链表拼接一下,两个指针分别跑了一个长链和一个段链,最后必然汇聚于公共节点。 ...
分类:
其他好文 时间:
2018-05-21 16:19:20
阅读次数:
135
3.5.1定义和初始化内置数组 1.维度必须是常量 constexpr unsigned x = 5; 3..5.2访问数组元素 1.在使用数组下标时,一般将下标声明为size_t 2.不能对尾指针使用解引用或者递增操作。 3.两指针相减的结果是一种类型为ptrdiff_t的标准库类型和size_t ...
分类:
编程语言 时间:
2018-05-19 17:00:40
阅读次数:
197
本周主要学习了c++中类与类之间的关系,主要有: 1)继承(Inheritance); 2)复合(Composition); 3)委托(Delegation); 一、复合: 类 queue 里有 deque ,其中类 queue 为容器,其拥有了 deque,该种关系即为复合,表示 has-a。其两 ...
分类:
编程语言 时间:
2018-01-22 00:06:27
阅读次数:
208
问题一:求sum值 描述:给定一有序序列ary和sum值,求序列中是否存在两元素e1和e2,其和刚好为sum。 算法思想:这是典型的两指针的用法。i指针从头部开始,j指针从尾部开始,相向移动,本质向讲,在移动过程中比较ary[i]+ary[j]与sum的大小,达到逐步排除元素的过程,缩短查找范围。最 ...
分类:
编程语言 时间:
2017-09-24 03:15:54
阅读次数:
135