上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页
摘要: [编程题] 1.单词接龙 拉姆刚开始学习英文单词,对单词排序很感兴趣。如果给拉姆一组单词,他能够迅速确定是否可以将这些单词排列在一个列表中,使得该列表中任何单词的首字母与前一单词的为字母相同。你能编写一个程序来帮助拉姆进行判断吗? 输入描述: 输入包含多组测试数据。 对于每组测试数据,第一行为一个正 阅读全文
posted @ 2016-08-17 15:50 SeeKHit 阅读(1058) 评论(0) 推荐(0) 编辑
摘要: 问题: 一个5x8的格子,想从左下角走到右上角,求最短路径,共有多少种走法。 思路: 因为是求最短路径,所以,只会往右往上走。 我们可以把棋盘的左下角看做二维坐标的原点(0,0),把棋盘的右上角看做二维坐标(M,N)(坐标系的单位长度为小方格的变长) 用f(i,j)表示移动到坐标f(i,j)的走法总 阅读全文
posted @ 2016-08-17 10:12 SeeKHit 阅读(771) 评论(0) 推荐(0) 编辑
摘要: 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。 其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另 阅读全文
posted @ 2016-08-16 13:28 SeeKHit 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路: 法一:输 阅读全文
posted @ 2016-08-16 10:49 SeeKHit 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是 阅读全文
posted @ 2016-08-16 10:11 SeeKHit 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 思路: 这个题是想得到一个时间复杂度为O(1)的min函数,所以应用一个辅助栈,压的时候,如果A栈的压入比B栈压入大,B栈不压,,,,小于等于,AB栈同时压入,出栈,如果,AB栈顶元素不等,A出,B不出。 AC代码: 阅读全文
posted @ 2016-08-15 19:27 SeeKHit 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路: 设置圈的概念,一圈一 阅读全文
posted @ 2016-08-15 15:52 SeeKHit 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路: 用2个新节点,一个用来存放新链表的头节点,另一个用来移动。当p1,p2有一个到尾部的时候,结束循环,讲另一条链剩下的插到新链尾部。 注意:需要考虑链表p1,p2为空的情况。 AC代码: 1 阅读全文
posted @ 2016-08-12 16:38 SeeKHit 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,反转链表后,输出链表的所有元素。 思路: 法1:用栈,压栈出栈 法2:头插法(有递归非递归2中) AC代码: 1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int x) : 6 阅读全文
posted @ 2016-08-11 16:19 SeeKHit 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路: 法1:设置2个指针p,q。p先移动k次,然后pq同时后移,p到链表尾尾的时候,q指向倒数第k个节点。 注意://需要考虑k=0,以及List为空的情况 法2:利用栈,先全部压栈,pop k次,得到倒数第k个节点 AC代码: 1 /* 2 阅读全文
posted @ 2016-08-11 14:57 SeeKHit 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路: 创建新的数组用来存放偶数,遍历原数组,讲偶数存放到新数组中,同时删除偶数,再将偶数数组,push_back到 阅读全文
posted @ 2016-08-11 14:23 SeeKHit 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路: 要考虑边界,0,负数 AC代码: 1 class Solution { 2 public: 3 double Power(double base, int exponen 阅读全文
posted @ 2016-08-11 11:35 SeeKHit 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 入队:将元素进栈A 出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈; 如果不为空,栈B直接出栈。 1 class Solution 2 { 3 public 阅读全文
posted @ 2016-08-11 11:18 SeeKHit 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路: 如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。 举个例子:一 阅读全文
posted @ 2016-08-10 14:10 SeeKHit 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,从尾到头打印链表每个节点的值。 输入描述: 输入为链表的表头 输出描述: 输出为需要打印的“新链表”的表头 思路: 用容器vector,递归到最后一个元素,push_back到dev中。 AC代码: 阅读全文
posted @ 2016-08-10 13:57 SeeKHit 阅读(195) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页