码迷,mamicode.com
首页 >  
搜索关键字:两个指针    ( 1059个结果
查找单链表的倒数第k个值
刚开始,我想到的是一种笨方法,先遍历单链表,计算出单链表的长度len,然后再从头遍历单链表到第len-k个节点,那么这个节点既是单链表的倒数第k个节点。 不过这种算法时间复杂度挺高的,还有一种更简单的方法,就是设置两个指针,分别指向单链表的头节点,然后让其中一个指针,先走k步,之后...
分类:其他好文   时间:2014-05-19 11:40:44    阅读次数:359
两个链表的公共结点
输入两个链表,找出他们的第一个公共结点。思想:我们可以先遍历一次得到分别得到两个链表的长度,然后计算得出长度差n,那么让较长的链表先走n步,然后两个链表一起向后走,直到两个指针指向同一个结点。这个结点就是我们要找的 结点。
分类:其他好文   时间:2014-05-17 14:19:43    阅读次数:231
广义表存储
节点形态: 存储结构: 每个节点都包含一个标志域,如果为0(即原子),那么仅含一个值域,如果是1(列表),那么说明该节点包含两个指针域。 需要注意的是求广义表长度的操作,其实计算的是根节点及其兄弟的个数,比如图2中广义表的长度为2,图3中广义表的长度为4。 深度的定义方式是递归式的,定义空表深度为1,原子深度为0,广义表的深度...
分类:其他好文   时间:2014-05-15 07:57:32    阅读次数:331
Leetcode 线性表 Remove Nth Node From End of List
题意:移除链表的倒数第n个元素 思路: 两个指针p, q, p先走n步,然后p,q一起走,当p走到尾的时候,q->next就是要删除的节点 复杂度: 时间O(n),空间O(1)...
分类:其他好文   时间:2014-05-15 02:53:13    阅读次数:241
leetcode第一刷_3Sum
估计大家都会做twoSum,一头一尾两个指针,跟据和的大小移动就行了。 3sum能不能用相同的方法呢,我尝试用暴力做,居然过了。思路是先把数组排个序,让相同数字的都靠在一起,然后固定一个数,其他两个数就按照twosum的那一套来,只不过计算sum的时候多算了一个数而已。需要注意一个问题,靠在一起一样的数,只能在第一次遇到它的时候用,更准确一点说,每个相同的数,只有一次作为i或j或k的机会,而且不...
分类:其他好文   时间:2014-05-15 01:29:41    阅读次数:248
leetcode第一刷_Rotate List
我提交了好多次,错误莫名其妙的,到后来才明白过来,原来我把题目给理解错了。 这个题的意思不是说让你把最后的那k个位置的元素移到前面来,这种问题的做法就是用两个指针,先让一个走,走到一定的长度之后两个一起走,很简单。它实际的意思是整个链表循环右移,假设一个链表长度是N,那么循环右移N次之后,链表又变回了原来的样子。k的取值范围只说了是非负的,也就是它可以是大于N的,因此实际的移位次数只是(k%N)...
分类:其他好文   时间:2014-05-13 23:37:23    阅读次数:299
算法入门之快速排序
快速排序原理: 快速排序先把等待排序的集合打乱顺序,把第一个元素作为基准元素,为第二个元素和最后一个元素分配两个指针i和j,如果a[i]小于基准元素则i++,如果a[j]大于基准元素则j--,这样把大于基准元素的a[i]和小于基准元素的a[j]互换,以此类推,最终把基准元素与a[j]相交换,就得到一个a[j]左侧全部小于a[j],右侧全部大于a[j]的一个近似有序数组,然后按照如上步骤重新寻找每个被a[j]分开的数组中的分隔点,最终得到有序数组。 在通用排序中,一般都会选取快速排序来解决问题。...
分类:其他好文   时间:2014-05-13 07:40:24    阅读次数:290
leetcode第一刷_Sort Colors
挺有意思的一道题目,属于我之前没有总结到的情况,他在修改数组的时候用到了第三个指针。 如果是两种颜色的话,大家肯定都会做,直接一头一尾两个指针,扫描到不属于自己同类的就互换。这个题有了第三者,怎样来解决这个问题呢?想一下在一个数组中,怎样才能做到线性时间的修改,必须一次性或者常数性的把当前元素替换到他最终应该待的位置,要么复杂就上去了。那当前元素应该呆在那里呢?如果是0的话,应该呆在数组前面都是...
分类:其他好文   时间:2014-05-11 06:44:31    阅读次数:259
判断单链表是否有环
判断单链表是否有环两个指针分别为p1和p2,每循环一次只向前走一步,p2向前走两步,知道p2碰到NULL指针或者两个指针相等则说明有环如果存在,start存放在圆环开始的节点bool IsLoop(node *head,node *start){node *p1=head,*p2=head;if(h...
分类:其他好文   时间:2014-05-10 00:22:22    阅读次数:272
判断单链表是否有环
判断单链表是否有环 假设两个指针分别为p1和p2,每循环一次只向前走一步,p2向前走两步,知道p2碰到NULL指针或者两个指针相等则说明有环 如果存在,start存放在圆环开始的节点...
分类:其他好文   时间:2014-05-09 14:12:54    阅读次数:273
1059条   上一页 1 ... 103 104 105 106 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!