题目描述:输入两个序列,一个为压入的序列,一个为弹出的序列。检查这两个序列是否符合栈的压入和弹出的性质。 算法实现: 参考书籍: 《剑指offer》 ...
分类:
其他好文 时间:
2016-04-10 17:38:17
阅读次数:
195
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 //这里说的非递减并不是乱序的,也是递增的,只不过递增的过程中可以有相同数字而已 ...
分类:
编程语言 时间:
2016-04-05 14:01:10
阅读次数:
384
典型的动态规划题,和《剑指offer》中的矩形覆盖题相似,只不过要考虑不同的边界情况。 另外对于《剑指offer》中的矩形覆盖题,值得考虑的是当矩形是n*n时,会有多少种覆盖的情况? 1 class Solution { 2 public: 3 int numDecodings(string s) ...
分类:
其他好文 时间:
2016-04-01 21:50:34
阅读次数:
128
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 当我们运行时,需要测试边界条件: 如果没考虑到这里,就会向下越界。该算法可以运行,但是这个算法超时: 改进后算法如下: 运行通 ...
分类:
编程语言 时间:
2016-03-31 18:21:01
阅读次数:
254
在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?..
分类:
编程语言 时间:
2016-03-30 16:37:42
阅读次数:
158
1234567891011121314151617181920212223242526272829303132333435363738394041424344class Solution {public: string replaceSpace(string str) { stack Mystack...
分类:
其他好文 时间:
2016-03-16 22:41:36
阅读次数:
252
利用两个间隔为k的指针来实现倒数第k个1234567891011121314151617181920212223242526272829303132/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x)...
分类:
其他好文 时间:
2016-03-16 22:25:49
阅读次数:
197
判断: 如果下一个弹出的数字刚好是栈顶元素,那么直接弹出如果下一个弹出的数字不在栈顶,我们要把压栈序列中,还没有入栈的数字压入辅助栈,知道把下一个需要弹出的数字压入栈顶如果所有的数字都入栈,但是仍然没有找到下一个弹出的数字,那么该序列不可能为弹出序列。123456789101112131415161...
分类:
其他好文 时间:
2016-03-16 22:21:38
阅读次数:
257
因为有序所以用二分法,分别找到第一个k和最后一个k的下标。时间O(logN)class Solution {public: int GetNumberOfK(vector data ,int k) { int num=0; int size=data.size(); if(size>0){ int ...
分类:
编程语言 时间:
2016-03-16 21:00:52
阅读次数:
268