摘要: 题目如下: 思路: 思路很简单,就是要检查s.charAt(i)和s.char(i-1)是否能构成一个字母,如果不能res[i]=res[i-1],如果能res[i]=res[i-1]+res[i-2]; 但难处在于处理s.charAt(i)=='0'的各种情况,还有边界条件要处理好。 本体代码: 阅读全文
posted @ 2017-04-13 16:54 圆旭 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 思路: 因为只能往右或往下走,所以可以初始化当res[m][0], res[0][n]这些边界情况 然后,每一步结果为当前值+min(上边一步,左边一步),即res[i][j] = grid[i][j] + min(res[i-1][j], res[i][j-1]) 本体代码: 网上的解 阅读全文
posted @ 2017-04-13 12:05 圆旭 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 思路: 同 LeetCode 62. Unique Paths, 只不过决定每个res[i][j]的时候,都要先判断:obstacleGrid[i][j]如果等于1,则res[i][j]=0; 否则正常进行。 本题代码: 阅读全文
posted @ 2017-04-13 11:16 圆旭 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 思路: 首先,当n=1,或m=1时,结果res[1][n] = res[m][1] = 1,这是边界情况; 否则,每次只有往下或往右走一步两种情况, 故res[m][n] = res[m-1][n] + res[m][n-1]; 算法效率O(m*n) 本体代码: 阅读全文
posted @ 2017-04-13 10:11 圆旭 阅读(166) 评论(0) 推荐(0) 编辑