Unique Paths II

  • 左上角那个点:有obstacle,则为0;没有obstacle,则为1。
  • 最上一排:有obstacle,则为0;没有obstacle,则为左边元素的值。
  • 最左边一排:有obstacle,则为0;没有obstacle,则为上边元素的值。
  • 其它点:有obstacle,则为0;没有obstacle,则为上边元素和左边元素值得和。

Implementation

public class Solution {
    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        int right = obstacleGrid[0].length;
        int down = obstacleGrid.length;
        int[] record = new int[right];
        for (int i = 0; i < down; i++) {
            for (int j = 0; j < right; j++) {
                if (i == 0 && j == 0) {
                    record[j] = (obstacleGrid[i][j] == 1)? 0: 1;
                }
                else if (i == 0) {
                    record[j] = (obstacleGrid[i][j] == 1)? 0: record[j - 1];
                }
                else if (j == 0) {
                    record[j] = (obstacleGrid[i][j] == 1)? 0: record[j];
                }
                else {
                    record[j] = (obstacleGrid[i][j] == 1)? 0: record[j] + record[j - 1];
                }
            }
        }
        return record[right - 1];
    }
}
posted @ 2016-02-18 15:39 VicHawk 阅读(133) 评论(0) 推荐(0) 编辑
摘要: "Merge Intervals" Implementation 阅读全文
posted @ 2016-02-18 15:06 VicHawk 阅读(128) 评论(0) 推荐(0) 编辑
摘要: "Group Anagrams" set a HashMap. The key is string with letters in lexicographic order. The value is index of list containing anagrams in an ArrayList. 阅读全文
posted @ 2016-02-18 11:34 VicHawk 阅读(125) 评论(0) 推荐(0) 编辑
摘要: "Search in Rotated Sorted Array" Implementation 阅读全文
posted @ 2016-02-18 05:35 VicHawk 阅读(243) 评论(0) 推荐(0) 编辑
摘要: "Swap Nodes in Pairs" Implementation 阅读全文
posted @ 2016-02-18 04:08 VicHawk 阅读(167) 评论(0) 推荐(0) 编辑
摘要: "3Sum Closest" 遍历数组nums,依次取出一个数 ,在 之后的数列中找两个数最接近 。 第一个数固定,后两个数按类似 处理。 当 小于 时,需要将左边的数向右移动。 当 大于 时,需要将右边的数向左移动。 设置 存储最小的 ,不断的跟新 。 设置 存储三个数的和,当 更新时, 也更新。 阅读全文
posted @ 2016-02-17 14:49 VicHawk 阅读(132) 评论(0) 推荐(0) 编辑
摘要: "3Sum" 去重 转化成2sum问题时,已经选过的数值可以跳过不再选 求解2sum过程中,碰到满足条件的两个数值,之后与它俩个相同的可以直接跳过 剪枝 尚未求过数列的前三个数之和大于0,则整个求解过程可以结束 取出一个数后,该数和最后两个数之和小于0的话,则跳过该数继续向后选取 Implement 阅读全文
posted @ 2016-02-17 13:33 VicHawk 阅读(154) 评论(0) 推荐(0) 编辑
摘要: "Roman to Integer" 从后往前遍历字符串 当前一个字符代表的数值比后一个小时,用最终结果减去这个数值 否则,用最终结果加上这个数值 Implementation 阅读全文
posted @ 2016-02-17 12:59 VicHawk 阅读(128) 评论(0) 推荐(0) 编辑
摘要: "String to Integer (atoi)" Implementation 阅读全文
posted @ 2016-02-17 08:13 VicHawk 阅读(121) 评论(0) 推荐(0) 编辑
摘要: "Reverse Integer" 判断是否overflow的部分注意: 根据x的正负检测。 根据result不准确,我们需要检测x还剩一位数的时候result是否overflow Implementation 阅读全文
posted @ 2016-02-17 07:32 VicHawk 阅读(133) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示