LeetCode63:不同路径II

代码如下

复制代码
class Solution {
public:
    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
        int m = obstacleGrid.size();
        int n = obstacleGrid[0].size();
        vector<vector<int> > dp(m, vector<int>(n, 0));
        for(int i = 0; i < m && obstacleGrid[i][0] == 0; i++)
        {
            dp[i][0] = 1;
        }
        for(int j = 0; j < n && obstacleGrid[0][j] == 0; j++)
        {
            dp[0][j] = 1;
        }
        for(int i = 1; i < m; i++)
        {
            for(int j = 1; j < n; j++)
            {
                if(obstacleGrid[i][j] == 1)
                    continue;
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
            }
        }
        return dp[m - 1][n - 1];
    }
};

这个题目其实也就是多加了一个条件,多了障碍物,不能走。这个时候要对初始化进行一定的判断。

我写这个题目的错误点:

(1)好长时间都没用vector这个二维数组了,我连遍历都忘了怎么遍历了。

重点写一下。

复制代码
//这个是行的多少,也就是来测量二维数组有多少行
obstacleGrid.size();
//这个是列的多少,也就是来测量二维数组有多少列
obstacleGrid[0].size();

遍历二维数组vector<vector <int> > arr(m, vector<int>(n, 0))

for(int i = 0; i < arr.size(); i++)
{
    for(int j = 0; j < arr[i].size(); j++)
    {

    }
}
这个即可,真的是糊涂!

(2)if里面的判断语句,我居然写成了dpij == 1,我感觉我的脑子真是有坑,不知道怎么想的,实际上现在想想,并不是dpij == 1,毕竟我们要求的是dpij,所以肯定是得需要原先的数obs来判断障碍物

相关推荐
猿人谷5 小时前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
复杂网络6 小时前
Stable Diffusion 视觉大模型微调技术深度调研
算法
复杂网络6 小时前
基于 Stable Diffusion 架构的视觉大模型代表性工作与原理深度解析
算法
MrZhao4006 小时前
Agent Loop 如何用 Hook 扩展:权限、日志与工具拦截
算法
MrZhao4006 小时前
Agent 为什么需要 Skills:别把所有知识都塞进 system prompt
算法
JieE2122 天前
LeetCode 101. 对称二叉树|JS 递归 + 迭代双解法,彻底搞懂镜像判断
javascript·算法
JieE2123 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack203 天前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树3 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
JieE2124 天前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法