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

题目:

题解:

Go 复制代码
func canCross(stones []int) bool {
    n := len(stones)
    dp := make([][]bool, n)
    for i := range dp {
        dp[i] = make([]bool, n)
    }
    dp[0][0] = true
    for i := 1; i < n; i++ {
        if stones[i]-stones[i-1] > i {
            return false
        }
    }
    for i := 1; i < n; i++ {
        for j := i - 1; j >= 0; j-- {
            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
}
相关推荐
慕容青峰1 小时前
【LeetCode 1925. 统计平方和三元组的数目 题解】
c++·算法·leetcode
独自破碎E2 小时前
如何用最短替换让字符串变平衡?
java·开发语言·算法·leetcode
Swift社区2 小时前
LeetCode 446 - 等差数列划分 II - 子序列
算法·leetcode·职场和发展
普贤莲花3 小时前
得物面试总结20251210
程序人生·算法·leetcode
flashlight_hi4 小时前
LeetCode 分类刷题:987. 二叉树的垂序遍历
数据结构·算法·leetcode
谈笑也风生5 小时前
经典算法题详解之切分数组(一)
数据结构·算法·leetcode
长安er5 小时前
LeetCode 167/15 两数之和与三数之和-双指针1
算法·leetcode·双指针·两数之和·三数之和
古城小栈6 小时前
Go实现的区块链 分片技术优化
golang·区块链·php
小白程序员成长日记7 小时前
2025.12.09 力扣每日一题
数据结构·算法·leetcode