代码随想录算法训练营day39 | LeetCode 62. 不同路径 63. 不同路径 II

2. 不同路径(题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台)

思路:整体思路是一样的,找到状态转移公式和初始化处理。不过这题开始dp数组变成了二维,需要着重考虑初始话特殊条件判断。

int uniquePaths(int m, int n){
    vector> dp(m, vector(n, 0));
    for(int i=0; i

63. 不同路径 II(题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台)

思路:遇到障碍dp[i][j]就赋值0,其他都是类似。比较容易漏掉的一点是,初始化的时候,也就是给dp数组第一行和第一列全部赋值1的时候要判断途中是否出现障碍物,若出现,后面的位置就都到不了,需要全部赋值为0.

int uniquePathsWithObstacles(vector>& obstacleGrid){
    int m = obstacleGrid.size();
    int n = obstacleGrid[0].size();
    vector> dp(m, vector(n, 0));
    for(int i=0; i

你可能感兴趣的:(算法,leetcode,职场和发展)