上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 43 下一页
摘要: 用了个数组来存路径。遇'.'跳过,遇'..'回退。看了一下别人的,和我的思路一样,只是人家用了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)
摘要: 此题略难,如果用集合去判重就没意思了。主要是对这种方式的求子集递归还不熟。在这种递归中,层层推进num数组的index,每前进一步,就要么取要么不取。不取就直接放入结果,取得话就遍历可选内容。由于之前的元素不管取还是不取,都在之前的循环中搞过了,到了下一步,就从k(i+1)开始开始选。否则会出现某个元素在之前index选了一次,这次又选一次的情况。同时,由于要去dup,那么在同一级里,相同的元素不能取两次,所以有判断i != k && num[i] == num[i-1]。关键是,所有生成的集合里的元素是有序的,有序添加。http://www.cnblogs.com/lauts 阅读全文
posted @ 2013-08-10 12:19 阿牧遥 阅读(716) 评论(0) 推荐(0)
上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 43 下一页