C语言 | Leetcode题解之第403题青蛙过河

题目:

题解:

cpp 复制代码
bool canCross(int* stones, int stonesSize) {
    int dp[stonesSize][stonesSize];
    memset(dp, 0, sizeof(dp));
    dp[0][0] = true;
    for (int i = 1; i < stonesSize; ++i) {
        if (stones[i] - stones[i - 1] > i) {
            return false;
        }
    }
    for (int i = 1; i < stonesSize; ++i) {
        for (int j = i - 1; j >= 0; --j) {
            int k = stones[i] - stones[j];
            if (k > j + 1) {
                break;
            }
            dp[i][k] = dp[j][k - 1] || dp[j][k] || dp[j][k + 1];
            if (i == stonesSize - 1 && dp[i][k]) {
                return true;
            }
        }
    }
    return false;
}
相关推荐
1nv1s1ble11 分钟前
记录rust滥用lazy_static导致的一个bug
算法·rust·bug
青山是哪个青山27 分钟前
动态规划DP
算法·动态规划
水水沝淼㵘33 分钟前
嵌入式开发学习日志(数据库II && 网页制作)Day38
服务器·c语言·网络·数据结构·数据库·学习
looklight1 小时前
7. 整数反转
c++·算法·leetcode·职场和发展
Closet1231 小时前
Codeforces 2025/6/11 日志
c++·算法·codeforces
Cyrus_柯1 小时前
网络编程(数据库:SQLite)
linux·c语言·数据库·sqlite
水饺编程2 小时前
MFC 第一章概述
c语言·c++·windows·mfc
緈福的街口2 小时前
【leetcode】36. 有效的数独
linux·算法·leetcode
Wangshanjie_983 小时前
【C语言】-指针01
c语言
秃然想通3 小时前
C语言——深入解析字符串函数与其模拟实现
c语言·开发语言