Java | Leetcode Java题解之第403题青蛙过河

题目:

题解:

java 复制代码
class Solution {
    public boolean canCross(int[] stones) {
        int n = stones.length;
        boolean[][] dp = new boolean[n][n];
        dp[0][0] = true;
        for (int i = 1; i < n; ++i) {
            if (stones[i] - stones[i - 1] > i) {
                return false;
            }
        }
        for (int i = 1; i < n; ++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 == n - 1 && dp[i][k]) {
                    return true;
                }
            }
        }
        return false;
    }
}
相关推荐
Flittly3 小时前
【AgentScope Java新手村系列】(17)长期记忆系统
java·spring boot·spring
wei1986213 小时前
.net添加web引用和添加服务引用有什么区别?
java·前端·.net
Full Stack Developme3 小时前
正则表达式的使用教程
java·数据库·正则表达式
SeeYa-J4 小时前
Sprint 1-2:创建第一个 Spring Boot Module(user-service)
java·spring boot·sprint
郭梧悠4 小时前
算法:有效的括号
python·算法·leetcode
旖-旎4 小时前
《LeetCode 1137 第N个泰波那契数 和 LeetCode 三步问题》
c++·算法·leetcode·动态规划
wabs6664 小时前
关于动态规划【力扣718.最长重复子数组的思考】
算法·leetcode·动态规划
云絮.5 小时前
数据库事务
java·开发语言·数据库
格子软件5 小时前
2026年GEO优化系统源码级状态机与多模型调度拆解
java·前端·vue.js·人工智能·vue·geo