摘要:        
用了个数组来存路径。遇'.'跳过,遇'..'回退。看了一下别人的,和我的思路一样,只是人家用了stack。我用了原始的arraylist而已。参考里的答案用了String[] splits = path.trim().split("/"); 商业代码这么写肯定好,这里如果用i,j,更好练习面试而已。public class Solution { public String simplifyPath(String path) { // Start typing your Java solution below // DO NOT write m    阅读全文
posted @ 2013-08-11 16:56
阿牧遥
阅读(210)
评论(0)
推荐(0)
        
            
        
        
摘要:        
首先,此题很显然是二分查找,但边界条件并不简单。方法我用了0,1,2,3,4,5五个测试用例确定下来的。但是后来居然超时了,难道死循环?后来看了下,果然是int溢出,还是要用long。典型的坑啊。 但看了参考中的方法:http://discuss.leetcode.com/questions/245    阅读全文
posted @ 2013-08-11 16:29
阿牧遥
阅读(208)
评论(0)
推荐(0)
        
            
        
        
摘要:        
秒杀,斐波那契数列。而且,其实不用像我的答案那也开数组的,用几个变量存就行了。public class Solution { public int climbStairs(int n) { // Start typing your Java solution below // DO NOT write main() function if (n == 0) return 0; if (n == 1) return 1; if (n == 2) return 2; int m[] = new int[n+1...    阅读全文
posted @ 2013-08-11 15:56
阿牧遥
阅读(173)
评论(0)
推荐(0)
        
            
        
        
摘要:        
很麻烦的题目。首先列出各种情况。1.首尾空格;2.+-3.e4.出现其他字符和空格但还是经不住很多小细节:"1."".""+.1""+1.""2e.3""1e"但我觉得我的思路一开始是对的,就是先按照e分开,按照.分开,然后左右分别处理。只是后来发现左右不能用同样的方法处理。不过这哥们的状态boolean方法自然是最好,只需扫描一遍:http://blog.unieagle.net/2012/11/06/leetcode%E9%A2%98%E7%9B%AE%EF%BC%9Av    阅读全文
posted @ 2013-08-11 15:49
阿牧遥
阅读(973)
评论(0)
推荐(0)
        
            
        
        
摘要:        
动态规划,此题思考许久,出错不少。动态规划的转移方程倒是想出来了,转移方程的讨论可见:http://blog.unieagle.net/2012/09/19/leetcode%E9%A2%98%E7%9B%AE%EF%BC%9Aedit-distance%EF%BC%8C%E5%AD%97%E7%A    阅读全文
posted @ 2013-08-11 14:39
阿牧遥
阅读(318)
评论(0)
推荐(0)
        
            
        
        
摘要:        
动态规划。要注意way+=dp[i-1]或dp[i-2]以及way+=1的条件。我看有的人把数组命名为count的。 public class Solution { public int numDecodings(String s) { // Start typing your Java solut    阅读全文
posted @ 2013-08-11 11:31
阿牧遥
阅读(382)
评论(0)
推荐(0)
        
            
        
        
摘要:        
简单题。顺手就写出来了。public class Solution { public int maxDepth(TreeNode root) { // Start typing your Java solution below // DO NOT write main() function if (root == null) return 0; if (root.left == null && root.right == null) return 1; int lmax = maxDepth(root....    阅读全文
posted @ 2013-08-11 02:14
阿牧遥
阅读(202)
评论(0)
推荐(0)
        
            
        
        
摘要:        
http://community.topcoder.com/stat?c=problem_statement&pm=2402&rd=5009动态规划题。对于圈状的题目有了点感觉。题目描述:n个数围成一个圆圈,求最大的子集和使得每一个数都不和其他任何数是相邻的。f[i][0]表示2...i这些数能得到的最大和,f[i][1]表示 1....i-1这些数能得到的最大和。f[i][0] 和 f[i-1][0] , f[i-2][0]+A[i]有关系, f[i][1] 和 f[i-1][1], f[i-2][0]+A[i]有关系。计算子问题的顺序:i form 0 to n-1.pub    阅读全文
posted @ 2013-08-11 01:22
阿牧遥
阅读(588)
评论(0)
推荐(0)
        
            
        
        
摘要:        
http://community.topcoder.com/stat?c=problem_statement&pm=1259&rd=4493动态规划题。如果不用DP,暴力的应当在2^n*n的复杂度吧。动态规划现在我的思维还老停留在一维而且没有第二层循环。但其实如果一开始的复杂度很高,稍微有几个循环,指数级别,一点问题没有。题目描述:给出n个数:A[1], A[2], ... , A[n],求最长的子序列的长度,子序列中相邻数之间的差值是正负交替出现的。f1[i]表示 最后一个数是A[i]并且A[i]和前一个数的差值为正的最长子序列的长度。f2[i]表示最后一个数是A[i]并且A    阅读全文
posted @ 2013-08-11 00:53
阿牧遥
阅读(558)
评论(0)
推荐(0)
        
 
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号