08 2017 档案

复杂链表的复制
摘要:题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另 阅读全文

posted @ 2017-08-31 14:18 泡面小王子 阅读(193) 评论(0) 推荐(0)

中兴笔试题二
摘要:#include #include int len,n,m; char s[20001]; int max; int ma[20001]; int maxstr() { int maxs=-999999; int sum=0; int i=0; for(i=0;i>>>>>"); max=-9999999; for(int i... 阅读全文

posted @ 2017-08-31 13:49 泡面小王子 阅读(143) 评论(0) 推荐(0)

二叉搜索树的后序遍历序列
摘要:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 * 递归实现检测 * * 对于后序遍历来说,序列数组的最后一个元素一定是根节点, * 则根据这个元素,将前面的数组分为左、右两个部分,左侧部分都小,右侧部分都大 阅读全文

posted @ 2017-08-31 09:15 泡面小王子 阅读(172) 评论(0) 推荐(0)

二叉树中和为某一值的路径
摘要:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思路:深搜(DFS) 阅读全文

posted @ 2017-08-31 08:02 泡面小王子 阅读(191) 评论(0) 推荐(0)

按之字形顺序打印二叉树
摘要:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 思路一:使用队列类似于BFS,但是这里需要加控制转向 思路二:使用两个栈:stack1储存奇数层,stack2储存偶数层,交替放入。 阅读全文

posted @ 2017-08-30 21:11 泡面小王子 阅读(152) 评论(0) 推荐(0)

二叉树的下一个节点
摘要:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路: (1) 若该节点存在右子树:则下一个节点为右子树最左子节点(如图节点 B ) (2) 若该节点不存在右子树:这时分两种情况 2.1 该节点为父节点的左子节点 阅读全文

posted @ 2017-08-30 15:57 泡面小王子 阅读(163) 评论(0) 推荐(0)

一个链表中环的入口
摘要:一个链表中包含环,请找出该链表的环的入口结点。 思路: 第一步,找环中相汇点。分别用slow,fast指向链表头部,slow每次走一步,fast每次走二步,直到slow==fast找到在环中的相汇点。 第二步,找环的入口。接上步,当slow==fast时,fast所经过节点数为2x,slow所经过节 阅读全文

posted @ 2017-08-30 13:57 泡面小王子 阅读(141) 评论(0) 推荐(0)

判断一颗二叉树是否对称
摘要:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 阅读全文

posted @ 2017-08-30 09:15 泡面小王子 阅读(376) 评论(0) 推荐(0)

删除链表中重复的节点
摘要:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 数据结构及初始化: 代码如下: 阅读全文

posted @ 2017-08-30 09:14 泡面小王子 阅读(267) 评论(0) 推荐(0)

构建乘积数组
摘要:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 剑指的思路: B[i]的值可以看作下图的矩阵中每行的乘积。 下三角用连乘可以很容求得,上三角,从 阅读全文

posted @ 2017-08-29 21:16 泡面小王子 阅读(158) 评论(0) 推荐(0)

不用加减乘除做加法
摘要:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。分析:首先看十进制是如何做的: 5+7=12,三步走第一步:相加各位的值,不算进位,得到2。第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。第三步:重复上述两步,只是相加的值变成上述 阅读全文

posted @ 2017-08-29 15:58 泡面小王子 阅读(167) 评论(0) 推荐(0)

数字在排序数组中出现的次数
摘要:统计一个数字在排序数组中出现的次数。 思路:“排序数组”,需要找数,则使用二分查找。 阅读全文

posted @ 2017-08-29 11:10 泡面小王子 阅读(136) 评论(0) 推荐(0)

数组中出现次数超过一半的数字
摘要:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 解决方案一: 经过Sort排序之后,判断numbers中间的元素的个数,如果大于总个数的 阅读全文

posted @ 2017-08-28 16:02 泡面小王子 阅读(158) 评论(0) 推荐(0)

滴滴内推2018
摘要:1.连续子串最大和(之前博客写过:1、暴力;2、DP) 2、无序数组第K大的数: 设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,决定很好,推荐给大家。 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S 阅读全文

posted @ 2017-08-27 19:34 泡面小王子 阅读(244) 评论(0) 推荐(0)

丑数
摘要:题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路是:某个丑数肯定是前面丑数的2,3,5倍数。只需要从前往后生成即可。1,2,3,4,5,6,8,9,10, 阅读全文

posted @ 2017-08-27 17:24 泡面小王子 阅读(142) 评论(0) 推荐(0)

合并两个排序的链表
摘要:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 方法一: 递归实现:两个链表合并为第三个链表pHead3; 阅读全文

posted @ 2017-08-27 14:42 泡面小王子 阅读(128) 评论(0) 推荐(0)

链表的翻转
摘要:输入一个链表,反转链表后,输出链表的所有元素。 方法一:建立节点指针类型堆栈,遍历链表,将指针压栈,顺次出栈,实现反转。这个占用内存空间较大。 思路2:依次遍历链表,改变节点的指向,注意之前要将下一个节点的地址赋值给一个指针next保存。 事实上,next指针表示去掉已经反转的链表的第二个节点,pr 阅读全文

posted @ 2017-08-27 13:57 泡面小王子 阅读(199) 评论(0) 推荐(0)

输出链表中倒数第k个节点
摘要:题目描述 输入一个链表,输出该链表中倒数第k个结点。 输入一个链表,输出该链表中倒数第k个结点。 算法的实现:快慢指针 阅读全文

posted @ 2017-08-26 22:48 泡面小王子 阅读(183) 评论(0) 推荐(0)

树的广度优先遍历
摘要:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 阅读全文

posted @ 2017-08-26 11:46 泡面小王子 阅读(211) 评论(0) 推荐(0)

栈的压入和弹出序列(剑指Offer)
摘要:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 阅读全文

posted @ 2017-08-26 10:03 泡面小王子 阅读(261) 评论(0) 推荐(0)

网易内推(操作序列)
摘要:小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:1、将a_i放入b序列的末尾2、逆置b序列小易需要你计算输出操作n次之后的b序列。 方法二: 观察排列的情况可以得出结论: 如果n是奇数,则先倒序输出奇数(n,n-2,...,1)然后是升序的偶数(2,4 阅读全文

posted @ 2017-08-23 14:36 泡面小王子 阅读(501) 评论(0) 推荐(0)

调整数组顺序使奇数位于偶数的前面
摘要:题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 (以空间换时间的方法: class Solution { public: void reOrderArray(vec 阅读全文

posted @ 2017-08-22 15:20 泡面小王子 阅读(147) 评论(0) 推荐(0)

红黑树
摘要:http://www.cnblogs.com/skywang12345/p/3245399.html 阅读全文

posted @ 2017-08-11 11:16 泡面小王子 阅读(111) 评论(0) 推荐(0)