62. Unique Paths

QuestionEditorial Solution

Total Accepted: 86710 Total Submissions: 239084 Difficulty: Medium

A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).

The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below).

How many possible unique paths are there?

aaarticlea/png;base64,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" alt="" />

使用动态规划来求解本题,在每个节点处,只有两个选择,向下或者向右走。本节点可由上一个节点向下或者向右走过来,两种方法:

1)使用一个二位数组count[i][j]来表示从起始点到达坐标(i,j)的,有两种,(i-1,j)-->(i,j)及(i,j-1)-->(i,j),即count[i][j] = count[i-1][j]+count[i][j-1],此时时间复杂度为O(mn),空间复杂度为O(mn)

public class Solution {
public int uniquePaths(int m, int n) {
int[][] count = new int[m+1][n+1];
for(int i=0;i<=m;i++){
for(int j=0;j<=n;j++){
if(i==0||j==0){
count[i][j] = 0;
}else if(i==1&&j==1){
count[i][j]=1;
}else{
count[i][j] = count[i-1][j]+count[i][j-1];
}
}
}
return count[m][n];
}
}

2)使用一个数组count[i]来表示从起始点到达某一行某一列的路径数量,此时有,count[i] = count[i-1]+count[i],此时,时间复杂度为O(mn),空间复杂度为O(n):

//因为只需求得最终结果,而不需要知道到达每一个坐标的路径数量
public class Solution {
public int uniquePaths(int m, int n) {
int[] count = new int[n];
count[0]=1;
for(int i=0;i<m;i++){
for(int j=1;j<n;j++){
count[i] = count[i-1]+count[i];
}
}
return count[n-1];
}
}

63. Unique Paths II

QuestionEditorial Solution

Total Accepted: 65258 Total Submissions: 222092 Difficulty: Medium

Follow up for "Unique Paths":

Now consider if some obstacles are added to the grids. How many unique paths would there be?

An obstacle and empty space is marked as 1 and 0 respectively in the grid.

For example,

There is one obstacle in the middle of a 3x3 grid as illustrated below.

[
[0,0,0],
[0,1,0],
[0,0,0]
]

The total number of unique paths is 2.

LeetCode之动态规划的更多相关文章

  1. leetcode笔记 动态规划在字符串匹配中的应用

    目录 leetcode笔记 动态规划在字符串匹配中的应用 0 参考文献 1. [10. Regular Expression Matching] 1.1 题目 1.2 思路 && 解题 ...

  2. Leetcode之动态规划(DP)专题-详解983. 最低票价(Minimum Cost For Tickets)

    Leetcode之动态规划(DP)专题-983. 最低票价(Minimum Cost For Tickets) 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行.在接下来的一年里,你要旅行的 ...

  3. Leetcode之动态规划(DP)专题-647. 回文子串(Palindromic Substrings)

    Leetcode之动态规划(DP)专题-647. 回文子串(Palindromic Substrings) 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子 ...

  4. Leetcode之动态规划(DP)专题-474. 一和零(Ones and Zeroes)

    Leetcode之动态规划(DP)专题-474. 一和零(Ones and Zeroes) 在计算机界中,我们总是追求用有限的资源获取最大的收益. 现在,假设你分别支配着 m 个 0 和 n 个 1. ...

  5. Leetcode之动态规划(DP)专题-486. 预测赢家(Predict the Winner)

    Leetcode之动态规划(DP)专题-486. 预测赢家(Predict the Winner) 给定一个表示分数的非负整数数组. 玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端 ...

  6. Leetcode之动态规划(DP)专题-264. 丑数 II(Ugly Number II)

    Leetcode之动态规划(DP)专题-264. 丑数 II(Ugly Number II) 编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n ...

  7. Leetcode之动态规划(DP)专题-198. 打家劫舍(House Robber)

    Leetcode之动态规划(DP)专题-198. 打家劫舍(House Robber) 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互 ...

  8. Leetcode之动态规划(DP)专题-121. 买卖股票的最佳时机(Best Time to Buy and Sell Stock)

    Leetcode之动态规划(DP)专题-121. 买卖股票的最佳时机(Best Time to Buy and Sell Stock) 股票问题: 121. 买卖股票的最佳时机 122. 买卖股票的最 ...

  9. Leetcode之动态规划(DP)专题-122. 买卖股票的最佳时机 II(Best Time to Buy and Sell Stock II)

    Leetcode之动态规划(DP)专题-122. 买卖股票的最佳时机 II(Best Time to Buy and Sell Stock II) 股票问题: 121. 买卖股票的最佳时机 122. ...

  10. Leetcode之动态规划(DP)专题-123. 买卖股票的最佳时机 III(Best Time to Buy and Sell Stock III)

    Leetcode之动态规划(DP)专题-123. 买卖股票的最佳时机 III(Best Time to Buy and Sell Stock III) 股票问题: 121. 买卖股票的最佳时机 122 ...

随机推荐

  1. Windows7 下python3和python2同时 安装python3和python2

    1.下载python3和python2 进入python官网,链接https://www.python.org/ 选择Downloads--->Windows,点击进入就可以看到寻找想要的pyt ...

  2. java基本类型和封装类型区别及应用

    1.基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的. 2.从性能上说java中的基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建的,(对象的引用在堆栈上创建).比如 Integ ...

  3. [BZOJ5073][Lydsy1710月赛]小A的咒语

    bzoj description 你有一个\(A\)串和\(B\)串,你需要判断是否可以在\(A\)串中拆出\(x\)个互不相交的子串,使它们按顺序拼在一起可以组成\(B\)串. \(|A|,|B|\ ...

  4. PHP的网站主要攻击方式有哪些

    1.命令注入(Command Injection) 2.eval注入(Eval Injection) 3.客户端脚本攻击(Script Insertion) 4.跨网站脚本攻击(Cross Site ...

  5. 几个开源ssg 技术方案

    1. Nanoc    2. Middle Man App   3. Hexo   4. DocPad   5. Hugo   6. Jekyll   7. Octopress   8. Harp   ...

  6. mui 拨打电话

    function callPhone() { let btnArray = ['拨打', '取消']; let Phone = "10086"; mui.confirm('是否拨打 ...

  7. server 2012系统更改电脑密码

    在server2012系统中将鼠标指针移至任务栏右侧,在弹出的操作栏中单击“设置”选项.   在打开的设置操作界面中,鼠标单击“控制面板”选项.     在打开的控制面板选项窗口中,单击“管理工具”选 ...

  8. mount: /dev/sdb already mounted or /sheepdog1 busy(multipath,wwid,uuid,udev)

    正常处理逻辑: 先umount /dev/sdb或是umount /backup如果还是显示的busy,你试试下面的方法fuser -m /dev/sdb查看一下是否sdb1正在被使用,或是有进程正在 ...

  9. [深度学习]Python/Theano实现逻辑回归网络的代码分析

    2014-07-21 10:28:34 首先PO上主要Python代码(2.7), 这个代码在Deep Learning上可以找到. # allocate symbolic variables for ...

  10. 一些非常好的VC++/MFC开源项目链接

    Introduction List of some of the best Open Source projects written in VC++/MFC. Background Codeproje ...