【题目】
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.
【题意】
给定一个已排序的链表,删除其中的重复元素
【思路】
维护两个指针prev和cur, cur指针负责扫描链表,prev指向cur的前一...
分类:
其他好文 时间:
2014-06-03 04:05:39
阅读次数:
231
题目:输入一个整数s,打印出全部和为s的连续整数序列(至少含有2个数)。比如输入9,则输出2、3、4和4、5两个序列方案一:因为序列至少要2个数,则两个数上限值为(1+s)/2,我们能够枚举该序列的起点和终点求全部满足的序列。时间复杂度为O(n^2),效率比較低方案二:我们设置两个指针start和e...
分类:
其他好文 时间:
2014-05-31 04:07:27
阅读次数:
282
题目:在二维坐标系下,有很多个挡板,有两个挡板之间能够积蓄的水的最大面积。如下图所示:思路:我只想到暴力解法,用O(n2)的时间复杂度算出任意两个挡板形成的面积,这必须的过不了。优化解法:O(n).用两个指针
i 和 j 指向整个height[]数组的头尾。if i 指向的高度 决定,因此不会比现在...
分类:
其他好文 时间:
2014-05-29 17:40:09
阅读次数:
312
题目:输入一个整数s,打印出所有和为s的连续整数序列(至少含有2个数)。例如输入9,则输出2、3、4和4、5两个序列
方案一:由于序列至少要2个数,则两个数上限值为(1+s)/2,我们可以枚举该序列的起点和终点求所有满足的序列。时间复杂度为O(n^2),效率比较低
方案二:我们设置两个指针start和end分别表示当前序列的起点和终点,并记序列和为sum。当sum = s的时候输出这个...
分类:
其他好文 时间:
2014-05-25 18:18:18
阅读次数:
191
题目:一个有序数组,要求保证数组中的每个元素不能超过2个。 输入:A =[1,1,1,2,2,3]
输出:length =5, and A is now[1,1,2,2,3]思路:双指针
。有些绕,不过理清了后,思路还是很直接明朗的。1、两个指针:p和help。初始化时同时指向数组头。变量cur.....
分类:
其他好文 时间:
2014-05-25 16:15:16
阅读次数:
285
题目:输入一个递增的排序的数组和一个数字s,在数组中查找两个数,使得它们的和为s。如果有多对满足条件的则输出任意一对即可
方案一:枚举两个数求和判断,时间复杂度O(n^2),显然效率太低
方案二:枚举第一个数,二分第二个数,时间复杂度O(nlogn),效率高了很多
方案三:设置两个指针p1,p2初始化指向数组的第一个数和最后一个数(即最小值和最大值),判断两个指针指向的两个数sum和...
分类:
其他好文 时间:
2014-05-25 10:03:37
阅读次数:
186
本文用指针形式实现了先进先出的队列,与栈队列类似,需要设计一个队列节点类,一个队列类,同时队列类为节点类的友元函数;不过与链栈不同的是,链栈仅用单一指针来实现入栈和出栈而链队列需要有front和rear两个指针(皆为队列节点类指针),front指针负责处理出列,rear处理入列#includeusi...
分类:
其他好文 时间:
2014-05-24 11:52:18
阅读次数:
266
bp为基址寄存器,一般在函数中用来保存进入函数时的sp的栈顶基址sp是栈顶指针,它每次指向栈顶。每次子函数调用时,系统在开始时都会保存这个两个指针并在函数结束时恢复sp和bp的值。像下面这样:在函数进入时:pushbp//保存bp指针movbp,sp//将sp指针传给bp,此时bp指向sp的基地址。...
分类:
其他好文 时间:
2014-05-23 07:24:11
阅读次数:
194
【题目】
原文:
2.2 Implement an algorithm to find the nth to last element of a singly linked list.
译文:
实现一个算法从一个单链表中返回倒数第n个元素。
【分析】
【思路一】
(1)创建两个指针p1和p2,指向单链表的开始节点。
(2)使p2移动n-1个位置,使之指向从头...
分类:
其他好文 时间:
2014-05-22 09:03:53
阅读次数:
315
题目描述:
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行为一个整数n (1<=n<=1000):n代表将要输入的链表元素的个数。(节点编号从1开始)。
接下来有n个数,表示链表节点中的值。
接下来有n个数Ti,Ti表示第i个节点的另一个指针指向。
Ti = 0 表示这个指针为NULL。
输出:
对应每个测试案例,
输出n行,每行有二个数,第一个代表当前节点值,第...
分类:
其他好文 时间:
2014-05-21 16:29:40
阅读次数:
174