leetcode[72] Edit Distance
摘要:两个字符串,判断他们之间的编辑距离,可以通过三个操作,删除,添加,替换。每种操作都算距离加一。例如“ab”和“abc”的距离为1.动态规划:用dis[i][j]记录string1的前i个和string2的前j个的距离。那么可以知道:1.如果str1的第i个,也就是str1[i-1]和str2的第j个...
阅读全文
posted @
2014-11-15 01:03
higerzhang
阅读(1582)
推荐(0)
leetcode[71] Sqrt(x)
摘要:题目,就是实现一个开方,返回是整数。int sqrt(int x)用二分法,因为一个数的开方肯定小于 x/2 + 1, 因为小于5的某些数的开方并不一定比x/2小,所以要+1,那么们定义一个left一个right分别为0和x/2 + 1,然后更新左右边界,直至左边界大于右边界,返回右边界就是答案。c...
阅读全文
posted @
2014-11-13 23:30
higerzhang
阅读(221)
推荐(0)
leetcode[70] Simplify Path
摘要:题目的意思是简化一个unix系统的路径。例如:path="/home/", =>"/home"path="/a/./b/../../c/", =>"/c"我尝试用逐个字符判断的方法,一直提交测试,发现要修改甚多的边界。于是就参考了这位大神思路其实不会那么复杂,C#里面的话直接可以用split就可以分...
阅读全文
posted @
2014-11-12 23:36
higerzhang
阅读(234)
推荐(0)
Text Justification 实现两端对齐功能
摘要:实现office word中的两端对齐功能。只有个单词时,右边补齐空格。最后一行每个词间一个空格,整下的空格右边补齐。给定字符串,和每行的字符数L。进行两端对齐输出。我的思路是写一个函数,给定相应的参数就返回该行的string。然后在主函数里只要负责给参数就好了。参数包括words字符串数组本身,然...
阅读全文
posted @
2014-11-11 23:46
higerzhang
阅读(810)
推荐(0)
leetcode[68] Climbing Stairs
摘要:n个台阶,每次可以走一步或者两步,总共有多少种走法。第一感觉想到的是递归,n为1的时候1种,2的时候2中。其他时候就是 fun(n) = fun(n-1) + fun(n-2);递归的代码很简单。如下class Solution {public: int climbStairs(int n) ...
阅读全文
posted @
2014-11-10 00:28
higerzhang
阅读(174)
推荐(0)
leetcode[67] Plus One
摘要:题目:对一个用vector存的数字进行加1,然后返回加1后的值。一次就在oj上通过了。就是进位加上当前位如果大于9,那就当前位等于0;随后进位还为1的话就是在数组前面插入一个1;class Solution {public: vector plusOne(vector &digits) ...
阅读全文
posted @
2014-11-10 00:13
higerzhang
阅读(174)
推荐(0)
valid number 判断字符串是否为有效数字
摘要:RT,面试题,给定一个字符串判断是否为科学计数法的有效数字。此题各种繁琐考虑。今天终于学会了用有限状态机来处理。理解之后简洁易懂。在此分享我的理解推导思路,大有收获啊。网上有解法说先记录每个状态代表的意思,然后根据状态的可能转移写出转移矩阵。但是,你肯定是一头雾水,状态数一多,就混乱不堪,根本很难有...
阅读全文
posted @
2014-11-09 23:52
higerzhang
阅读(2281)
推荐(0)
leetcode Add Binary
摘要:题目:给定两个二进制字符串,返回相加的结果,也是二进制表示。主要就是考查进位如何操作,以及最后如果加完之后进位还是1的话那么不能漏了还要加1.跟之前有做过一题的类似。因为这题easy就是判断,所以直接贴代码了,感觉好长的样子。class Solution {public: string add...
阅读全文
posted @
2014-11-09 00:08
higerzhang
阅读(215)
推荐(0)
leetcode Minimum Path Sum
摘要:题目:还是类似于之前两题,这里给定的m*n矩阵是每个数字都有值的。求的从头到尾的最小sum是多少。还是用动态规划求。初始化的时候是先计算第一行和第一列。假设给定的数据如下:那么初始化后为:那么再定位要处理的数字到i=1和j=1处,如表中的数字2处。这个时候更新是更加它加上它的左边或者上边的较小的值。...
阅读全文
posted @
2014-11-08 23:26
higerzhang
阅读(325)
推荐(0)
leetcode Unique Paths II
摘要:题目:和上一题类似,就是这个时候给定了矩阵包含0和1,1代表不能从这里走。我的想法其实很明确,还是用动态规划,只是碰到壁垒的时候要进行考虑。还有初始化很重要。因为1本来是要用来代表在这里出发到终点有一种可能的,所以壁垒的1要用其他代替,我用-1代表是壁垒。如果给定的数组第一个数就是1,那永远都出发不...
阅读全文
posted @
2014-11-08 00:23
higerzhang
阅读(429)
推荐(0)
leetcode[61] Unique Paths
摘要:题目:给定一个m*n的矩阵,从头开始,只能往右边和下边走,一次走一格,知道走到最后一个(右下角)为止。总共有多少种走法。典型的动态规划吧。其实从头走到尾部,和从尾部开始走到头是一样的次数。我们用一个矩阵记录到第一格子的次数,那么可以看到有如下的表:假设是3*4的矩阵,那么我们要返回的就是10了,每个...
阅读全文
posted @
2014-11-07 22:54
higerzhang
阅读(447)
推荐(0)
leetcode[60] Rotate List
摘要:题目:给定链表,和一个k,把链表的后k个旋转到前头,例如链表为:1->2->3->4->5->NULLandk=2,return4->5->1->2->3->NULL.一开始我想,跟将后面第k个元素删除一样,可以遍历一次就可以解决问题。但是在测评的时候发现k有大于链表长度的时候,我以为如果大于长度了...
阅读全文
posted @
2014-11-07 21:52
higerzhang
阅读(143)
推荐(0)
leetcode Permutation Sequence
摘要:题目:给定数字n,然后将1到n的第k个字典序排列找出来,例如3的时候有所有字典序为:"123""132""213""231""312""321" 那么第2个就是“132”,返回这个字符串。记得之前有做过输出所有可能的排序,在Permutation中,有兴趣还可以看看。所以很直观的就是复制那题的代码然...
阅读全文
posted @
2014-11-06 23:40
higerzhang
阅读(227)
推荐(0)
leetcode Spiral Matrix II
摘要:题目:是Spiral Matrix相关的的。这题的意思是给定一个n,那么在n*n的矩阵里按照循环记录将1,2,3,..., n*n。如下如果给定3,那么:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]一开始我想是不是有数学公式直接下标对应的,那直接遍历输出就可以了。...
阅读全文
posted @
2014-11-05 22:33
higerzhang
阅读(212)
推荐(0)
leetcode Length of Last Word
摘要:题目:给定一个只包含大小写字母和空格的字符串。返回最后一个单词的长度。“abc a” 是1 “abc ”是3两种思路,一个从头往后,一个从后往前。1.从头往后的话,需要记住空格前的一个单词是多长,如果空格到尾了,就输出记录的值,如果空格之后还有单词,就重新计数。用flag记录知否遇到空格。cla...
阅读全文
posted @
2014-11-04 22:09
higerzhang
阅读(149)
推荐(0)
leetcode Insert Interval
摘要:题目:给定一系列的区间,这些区间是不重合的,而且按每个区间的起始点排好序了。再来一个区间。怎么得到所有合并后的区间。Example 1:Given intervals[1,3],[6,9], insert and merge[2,5]in as[1,5],[6,9].Example 2:Given[...
阅读全文
posted @
2014-11-04 21:27
higerzhang
阅读(352)
推荐(0)
leetcode[55] Merge Intervals
摘要:题目:给定一连串的区间,要求输出不重叠的区间。Given a collection of intervals, merge all overlapping intervals.For example,Given[1,3],[2,6],[8,10],[15,18],return[1,6],[8,10]...
阅读全文
posted @
2014-11-04 01:01
higerzhang
阅读(222)
推荐(0)
leetcode Jump Game
摘要:这题和那题类似,这题更简单。我当初就做了这题。当初的代码如下:class Solution {public: bool canJump(int A[], int n) { if (n canReach) return false; ...
阅读全文
posted @
2014-11-03 00:18
higerzhang
阅读(228)
推荐(0)
leetcode Spiral Matrix
摘要:题目:螺旋输出数组(听师兄说是今年google电话面试题)Given a matrix ofmxnelements (mrows,ncolumns), return all elements of the matrix in spiral order.For example,Given the fo...
阅读全文
posted @
2014-11-03 00:08
higerzhang
阅读(313)
推荐(0)
leetcode Maximum Subarray
摘要:题目:Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array[−2,1,−3,4,−1,2...
阅读全文
posted @
2014-11-02 01:08
higerzhang
阅读(192)
推荐(0)