
面试题
PhoenixDead
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MS100 [041-060]
MS100 [046]括号排列数四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())思路:12种MS100 [047]最长递减子序列求一个数组的最长递减子序列比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}思路:经典动态规划,方案一,记录max[i]为以a[i]接尾的最长递减子序列长度,从0到n-1不断更新m原创 2012-10-08 21:55:46 · 555 阅读 · 0 评论 -
MS100 [002-010]
MS100 [002]设计包含min 函数的栈定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数min、push 以及pop 的时间复杂度都是O(1)。思路:关键在于pop时能正确得到min为栈中剩下元素的最小值。所以定义栈中的元素为struct MinStackElement { int data; int min;//保存以当前元素为栈顶原创 2012-10-06 01:36:15 · 501 阅读 · 0 评论 -
MS100 [011-020]
MS100 [011]求二叉树中节点的最大距离思路:在某个子树中,最大距离是左子树中最长枝到右子树中最长枝的距离。简单的递归,每次递归中,返回值用max(left,right)+1,当前节点所在子树的最大距离为max(left)+max(right),用一个引用变量记录最大的距离值。MS100 [013]输出该链表中倒数第k个结点输入一个单向链表,输出该链表中倒数第k个原创 2012-10-07 23:08:42 · 639 阅读 · 0 评论 -
MS100 [021-040]
MS100 [021]编程求解:输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m ,要求将其中所有的可能组合列出来.思路:纯编程题,只能暴力求解。MS100 [024]反转单链表和合并链表思路:反转注意处理头尾,编程题。合并两个链表时,可用:while(lista!=null || listb!=null){ if原创 2012-10-08 00:56:34 · 1006 阅读 · 0 评论 -
MS100 [061-070]
MS100 [061]找出数组中两个只出现一次的数字题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。思路:使用异或运算。第一遍,全部异或,得到A,A中至少有一位为1,记为t位。第二遍,对数组中的任意一个数,若t位为1,则与C异或,若t位为0,则与D异或。最后的C,D即为所求原创 2012-10-09 16:36:24 · 463 阅读 · 0 评论 -
MS100[001]
MS100[1]题目:把二元查找树转变成排序的双向链表输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。10/ \6 14/ \ / \4 8 12 16 转换成双向链表 4=6=8=10=12=14=16。方案一:BSTreeNode * treeToLinkedList(BSTreeNode * ro原创 2012-10-05 22:47:32 · 573 阅读 · 0 评论