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;
    }
}
相关推荐
luyun0202028 小时前
Windows 11操作更丝滑,绝了
java·运维·figma
码银8 小时前
【数据结构】顺序表
java·开发语言·数据结构
Boop_wu8 小时前
[Java EE] 计算机基础
java·服务器·前端
im_AMBER8 小时前
Leetcode 52
笔记·学习·算法·leetcode
小欣加油8 小时前
leetcode 946 验证栈序列
c++·算法·leetcode·职场和发展
橘子海全栈攻城狮8 小时前
【源码+文档+调试讲解】基于Spring Boot的考务管理系统设计与实现 085
java·spring boot·后端·spring
神仙别闹8 小时前
基于QT(C++) 实现哈夫曼压缩(多线程)
java·c++·qt
百锦再9 小时前
第12章 测试编写
android·java·开发语言·python·rust·go·erlang