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
}
相关推荐
earthzhang202127 分钟前
第3讲:Go垃圾回收机制与性能优化
开发语言·jvm·数据结构·后端·性能优化·golang
apocelipes1 小时前
golang unique包和字符串内部化
java·python·性能优化·golang
驰羽3 小时前
[GO]GORM 常用 Tag 速查手册
开发语言·后端·golang
无敌最俊朗@4 小时前
数组-力扣hot56-合并区间
数据结构·算法·leetcode
码农多耕地呗4 小时前
力扣94.二叉树的中序遍历(递归and迭代法)(java)
数据结构·算法·leetcode
微笑尅乐5 小时前
BFS 与 DFS——力扣102.二叉树的层序遍历
leetcode·深度优先·宽度优先
白云千载尽6 小时前
leetcode 912.排序数组
算法·leetcode·职场和发展
代码充电宝6 小时前
LeetCode 算法题【简单】290. 单词规律
java·算法·leetcode·职场和发展·哈希表
Juan_20127 小时前
P1040题解
c++·算法·动态规划·题解
And_Ii8 小时前
LeetCode 3397. 执行操作后不同元素的最大数量
数据结构·算法·leetcode