2.3 实现一个算法,删除单向链表中间的某个结点,假设你只能访问该结点。(即你不知道头结点)这个问题的关键是你只有一个指向要删除结点的指针,如果直接删除它,这条链表就断了。 但你又没办法得到该结点之前结点的指针,是的,它连头结点也不提供。在这种情况下, 你只能另觅他径。重新审视一下这个问题,我们只能...
转载 2014-12-03 21:14:00
90阅读
2评论
2.6 给定一个有环链表,实现一个算法返回环路的开头结点。类似leetcode中Linked List Cycle IIC++实现代码:#include#includeusing namespace std;struct ListNode{ int val; ListNode *next...
转载 2014-12-03 23:14:00
78阅读
2评论
2.1 编写代码,移除未排序链表中的重复节点。不使用临时缓存:如果不允许使用临时的缓存(即不能使用额外的存储空间),那需要两个指针, 当第一个指针指向某个元素时,第二个指针把该元素后面与它相同的元素删除, 时间复杂度O(n2)。C++实现代码:#include#includeusing namesp...
转载 2014-12-03 20:32:00
50阅读
题目1: http://www.careercup.com/question?id=2777, aligned malloc详细解析,或者简单使用memalign   题目2: http://www.careercup.com/question?id=294741,解释malloc和free   题目3: http://www.careercup.com/ques
原创 2010-02-23 05:12:23
1624阅读
2.7 编写一个函数,检查链表是否为回文。思路:1)可以利用链表中的元素采用头插法创建一个新的链表,然后比较两个链表的元素是否相等。 2)利用快慢指针,将链表后半部分逆转之后,比较前半部分与后半部分是否相等。 3)利用栈将链表中的元素保存,然后弹出与链表中元素比较。C++实现代码:#inc...
转载 2014-12-04 08:45:00
79阅读
2评论
2.5 给定两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入: (7->1->6)+(5->9->2),即617+295.输出:2->1->9,即912.进阶:假设这些数位是正向存放的示例:输入:(6...
转载 2014-12-03 22:52:00
33阅读
2评论
2.4 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。思路:将小于的结点还是保存在原来的链表中,将大于等于x的结点加入一个新的链表,最后将这两个链表链接起来。C++实现代码:#include#includeusing namespace std;struc...
转载 2014-12-03 22:06:00
58阅读
2评论
2.2 实现一个算法,找到单链表中倒数第k个节点。这道题的考点在于我们怎么在一个单链表中找到倒数第n个元素? 由于是单链表,所以我们没办法从最后一个元素数起,然后数n个得到答案。 但这种最直观的思路显然是没错的,那我们有没有办法通过别的方式,从最后的元素数起数 n个来得到我们想要的答案呢。这个次序颠...
转载 2014-12-03 20:59:00
53阅读
2评论
题目1: http://www.careercup.com/question?id=175748 读一读就好了   题目2: http://www.careercup.com/question?id=176760 说实话,俺不太明白   题目3: http://www.careercup.com/question?id=175747 malloc输出NU
原创 2010-02-24 02:15:27
393阅读
5.1 写程序使整数N中第i位到第j位的值与整数M中的相同。题目给定两个32位的数,N和M,还有两个指示位的数,i和j。 写程序使得N中第i位到第j位的值与M中的相同(即:M变成N的子串且位于N的第i位和第j位之间)例子:输入: N = 10000000000, M = 10101, i = 2, ...
转载 2014-12-06 17:18:00
45阅读
2评论
7.3 给定直角坐标系上的两条线,确定这两条线会不会相交。解法:此题有很多不确定的地方:两条线的格式是什么?两条线实为同一条怎么处理?这些含糊不清的地方最好跟面试官讨论一下。下面将做出以下假设:若两条线是相同的(斜率和y轴截距相等),则认为这两条线相交;两条线若不平行则必相交。因此,要检查两条线相交...
转载 2014-12-06 22:27:00
58阅读
2评论
Oh, no! You have just completed a lengthy document when you have an unfortu- nate Find/Replace mishap. You have accidentally removed all spaces, punctuation, and capitalization in the document
转载 2015-03-22 11:55:00
95阅读
2评论
  题目1:   http://www.careercup.com/question?id=58180   一种是列表法,列一个表格,这个表格里面每个数字对应的1的个数都是确定的 另一种就是除以2,然后检查个位,然后循环   题目2:   http://www.careercup.com/question?id=58179 &
原创 2010-03-05 03:04:25
437阅读
17.11 给定rand5(),实现一个方法rand7().也即,给定一个产生0到4(含)随机数的方法,编写一个产生0到6(含)随机数的方法。解法:这个函数要正确实现,则返回0到6之间的值,每个值的概率必须为1/7.1 第一个尝试(调用次数固定)第一个尝试时,我们可能会想产生出0到9之间的值,然后再...
转载 2014-12-13 12:17:00
83阅读
2评论
算法同上题   package Hard; import CtCILibrary.AssortedMethods; /** * Write a method to randomly generate a set of m integers from an array of size n. Each element must have equal probability of being
转载 2013-12-13 15:53:00
72阅读
2评论
9.1 You are given two sorted arrays, A and B, and A has a large enough buffer at the end to hold B. Write a method to merge B into A in sorted order. ...
转载 2014-07-11 21:18:00
70阅读
2评论
第i个元素和index在[i,length-1]之间的一个数随机交换   package Hard; import CtCILibrary.AssortedMethods; /** * * Write a method to shuffle a deck of cards. It must be a perfect shuffle - in other words, each 52!
转载 2013-12-13 15:56:00
88阅读
2评论
11.5 有个排序后的字符串数组,其中散布着一些空字符串,编写一个方法,找出给定字符串的位置。解法:如果没有那些空字符串,就可以直接使用二分查找法。比较待查找字符串str和数组的中间元素,然后继续搜索下去。针对数组中散布一些空字符串的情形,我们可以对二分查找法稍作修改,所需的修改就是mid进行比较的...
转载 2014-12-09 16:17:00
97阅读
2评论
7.7 有些数的素因子只有3、5、7,请设计一个算法,找出其中第k个数。解法:首先,我们可以将满足条件的前几个数列出来,以此寻找解题思路。一种简单的思路就是对于已经列出的数,我们依次去乘以3,5,7得到一组数 然后找出最小且还没有列出的数,加入到这个列表。然后重复上面的步骤: 乘以3,5,7,找出最...
转载 2014-12-07 11:30:00
34阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5