上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 43 下一页
摘要: 不难。就是比如到了[0, 1, 3, 2]时,下一组就要[4+2, 3+2, 1+2, 0+2]。但是当时没有做到ans.add(0)一开始初始化(而是只放在n==0的判断block内了),所以runtime error了。看了半天看出来了。public class Solution { public ArrayList grayCode(int n) { // Start typing your Java solution below // DO NOT write main() function ArrayList ans = new Arr... 阅读全文
posted @ 2013-08-13 21:17 阿牧遥 阅读(165) 评论(0) 推荐(0)
摘要: 动态规划。再最左和最上加了0的一行一列。但是一开始忘了把mx[1][1]设成1了。public class Solution { public int uniquePathsWithObstacles(int[][] obstacleGrid) { // Start typing your Java solution below // DO NOT write main() function int m = obstacleGrid.length; if (m == 0) return 0; int n = obsta... 阅读全文
posted @ 2013-08-13 20:49 阿牧遥 阅读(173) 评论(0) 推荐(0)
摘要: 动态规划。就是要注意第0行和第0列的初始化。 public class Solution { public int minPathSum(int[][] grid) { // Start typing your Java solution below // DO NOT write main() f 阅读全文
posted @ 2013-08-13 20:38 阿牧遥 阅读(148) 评论(0) 推荐(0)
摘要: 简单题。public class Solution { public int jump(int[] A) { // Start typing your Java solution below // DO NOT write main() function int len = A.length; if (len == 0 || len == 1) return 0; int[] m = new int[len]; m[0] = 0; int max = 0; in... 阅读全文
posted @ 2013-08-12 23:29 阿牧遥 阅读(196) 评论(0) 推荐(0)
摘要: 整体不难,一开始以为是线段树,后来仔细看来不需要,从左到右扫,判断是否要merge就是了。此题有几个要注意的地方:1.Java的Comparator要会写;2.循环结束后的ans.add(tmp)不要忘记;3.merge的时候,左右边界要计算一下。 /** * Definition for an i 阅读全文
posted @ 2013-08-12 22:55 阿牧遥 阅读(1245) 评论(0) 推荐(0)
摘要: 简单题。public class Solution { public int lengthOfLastWord(String s) { // Start typing your Java solution below // DO NOT write main() function int len = s.length(); if (len == 0) return 0; boolean meetWord = false; int count = 0; for (int i =... 阅读全文
posted @ 2013-08-12 22:07 阿牧遥 阅读(155) 评论(0) 推荐(0)
摘要: 动态规划。巧妙的是通过在最上和最左边加一条0的线,大大简化了编程实现。public class Solution { public int uniquePaths(int m, int n) { // Start typing your Java solution below // DO NOT write main() function int[][] mx = new int[m+1][n+1]; for (int i = 0; i < m+1; i++) { mx[i][0] = 0; ... 阅读全文
posted @ 2013-08-12 21:57 阿牧遥 阅读(202) 评论(0) 推荐(0)
摘要: 这道题果然不容易写对啊。首先为了写对,我写完以后对着代码又检查了一阵,挺好,而且发现自己偶尔写点注释也便于自己理解。然后居然超时了,主要原因就是计算长度为n的空字符串花时间太多,就用了个数组一开始先算好存起来。这里用new String[L+1]主要为了避免L为0的情况。public class Solution { public ArrayList fullJustify(String[] words, int L) { // Start typing your Java solution below // DO NOT write main() funct... 阅读全文
posted @ 2013-08-12 21:47 阿牧遥 阅读(465) 评论(0) 推荐(0)
摘要: 尝试不用递归,那么就要用queue。不用递归就要用多一个queue来保存level。update:事实上,BFS一般都要用queue的。这道题目也可以用DFS解决,就是在递归的过程中传入每一层的level,那么到达某个level时,就往这个level的数组里放进数据。http://discuss.leetcode.com/questions/49/binary-tree-level-order-traversal而至于多一个queue,其实也不必,可以记录lastLevel和thisLevel两个数字来做到。public class Solution { public ArrayList... 阅读全文
posted @ 2013-08-11 23:36 阿牧遥 阅读(266) 评论(0) 推荐(0)
摘要: 一开始用了DP,大数据超时了。超时的版本:public class Solution { public boolean canJump(int[] A) { // Start typing your Java solution below // DO NOT wri... 阅读全文
posted @ 2013-08-11 17:29 阿牧遥 阅读(309) 评论(0) 推荐(0)
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 43 下一页