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;
    }
}
相关推荐
大数据编程之光15 分钟前
Flink Standalone集群模式安装部署全攻略
java·大数据·开发语言·面试·flink
Lenyiin25 分钟前
02.06、回文链表
数据结构·leetcode·链表
爪哇学长28 分钟前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法
ExiFengs32 分钟前
实际项目Java1.8流处理, Optional常见用法
java·开发语言·spring
paj12345678934 分钟前
JDK1.8新增特性
java·开发语言
繁依Fanyi1 小时前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
慧都小妮子1 小时前
Spire.PDF for .NET【页面设置】演示:打开 PDF 时自动显示书签或缩略图
java·pdf·.net
m51271 小时前
LinuxC语言
java·服务器·前端
烦躁的大鼻嘎1 小时前
模拟算法实例讲解:从理论到实践的编程之旅
数据结构·c++·算法·leetcode
IU宝1 小时前
C/C++内存管理
java·c语言·c++