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. JAVA验证身份证号码是否合法

    package com.chauvet.utils; import java.text.ParseException; import java.text.SimpleDateFormat; impor ...

  2. LeetCode 973. K Closest Points to Origin

    原题链接在这里:https://leetcode.com/problems/k-closest-points-to-origin/ 题目: We have a list of points on th ...

  3. 转:Excel导入SQL数据库完整代码

    Excel导入SQL数据库完整代码 protected void studentload_Click(object sender, EventArgs e) {//批量添加学生信息 SqlConnec ...

  4. __getitem__ 专用方法

    (1)  __getitem__ 专用方法很简单.像普通的方法 clear,keys 和 values 一样,它只是重定向到字典,返回字典的值.但是怎么调用它呢?哦,你可以直接调用 __getitem ...

  5. elixir 几种安装方式

    1. yum yum 源(直接放弃,版本太老)   2. 使用预编译包 wget https://github.com/elixir-lang/elixir/releases/download/v1. ...

  6. Linux服务器运维安全策略经验分享

    http://jxtm.jzu.cn/?p=3692 大家好,我是南非蚂蚁,今天跟大家分享的主题是:线上Linux服务器运维安全策略经验.安全是IT行业一个老生常谈的话题了,从之前的“棱镜门”事件中折 ...

  7. Socket客户端

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  8. FPGA与DSP简单比较

    FPGA与DSP比较 两者的优势不一样.在硬件层面,DSP是ASIC,如同CPU GPU一样,适宜于量产降低成本,缺点是(硬件)设计一旦确定,便不易于修改. 而FPGA较灵活,可以通过硬件描述语言进行 ...

  9. java代码--实现随机输出10个随机数,并显示最大值,最小值

    总结;对于length()属性,还不是很熟悉.不会用它. package com.s.x; //随机产生10个随机数,并且显示出最大值,最小值 public class Love { public s ...

  10. java代码。。。圆的面积好搞人。。。不是一般的搞人。。。欢迎指点指点

    package com.ll; public class Class3 {     private String name;     private int age;     private int ...