# 0063. Unique Paths II ###### tags: `Leetcode` `Medium` `动态规划` Link: https://leetcode.com/problems/unique-paths-ii/ ## 思路 和上一题差不多,但要注意i = 0和j = 0一行一列的赋值 以及可以用Line17代替Line 11-16虽然run起来结果一样,但是更省力~ 并且要注意**有些时候动态规划的题目不需要重新再建一个array来存结果或者不需要一个跟input一样大的array来存结果**(如62题) ## Code ```c= class Solution { public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int m = obstacleGrid.size(); int n = obstacleGrid[0].size(); if(obstacleGrid[0][0] == 1){ return 0; } obstacleGrid[0][0] = 1; for(int j = 1;j < n;j++){ // if(obstacleGrid[0][j] != 1&&obstacleGrid[0][j-1]!=0){ // obstacleGrid[0][j] = 1; // } // else{ // obstacleGrid[0][j] = 0; // } obstacleGrid[0][j] = (obstacleGrid[0][j] != 1 && obstacleGrid[0][j-1] != 0)?1:0; } for(int i = 1;i < m;i++){ obstacleGrid[i][0] = (obstacleGrid[i][0] != 1&&obstacleGrid[i-1][0] != 0)?1:0; } for(int i = 1;i < m;i++){ for(int j = 1;j < n;j++){ if(obstacleGrid[i][j]==1){ obstacleGrid[i][j] = 0; } else{ obstacleGrid[i][j] = obstacleGrid[i-1][j]+obstacleGrid[i][j-1]; } } } return obstacleGrid[m-1][n-1]; } }; ``` ## Result Runtime: 0 ms, faster than **100.00%** of C++ online submissions for Unique Paths II. Memory Usage: 7.5 MB, less than **96.49%** of C++ online submissions for Unique Paths II.
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up