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;
}
相关推荐
重生之后端学习12 分钟前
19. 删除链表的倒数第 N 个结点
java·数据结构·算法·leetcode·职场和发展
aini_lovee19 分钟前
严格耦合波(RCWA)方法计算麦克斯韦方程数值解的MATLAB实现
数据结构·算法·matlab
sycmancia28 分钟前
C语言学习07——变量的作用域
c语言·学习
安特尼36 分钟前
推荐算法手撕集合(持续更新)
人工智能·算法·机器学习·推荐算法
鹿角片ljp43 分钟前
力扣14.最长公共前缀-纵向扫描法
java·算法·leetcode
Remember_9931 小时前
【数据结构】深入理解优先级队列与堆:从原理到应用
java·数据结构·算法·spring·leetcode·maven·哈希算法
偷星星的贼111 小时前
C++中的状态机实现
开发语言·c++·算法
程序员敲代码吗1 小时前
C++中的组合模式实战
开发语言·c++·算法
海上Bruce1 小时前
C primer plus (第六版)第十二章 编程练习第1题
c语言
52Hz1182 小时前
二叉树理论、力扣94.二叉树的中序遍历、104.二叉树的最大深度、226.反转二叉树、101.对称二叉树
python·算法·leetcode