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
}
相关推荐
ezreal_pan29 分钟前
弹窗缓存重构技术方案
缓存·重构·golang
Eward-an33 分钟前
LeetCode 1980 题通关指南|3种解法拆解“找唯一未出现二进制串”问题,附Python最优解实现
python·算法·leetcode
程序员酥皮蛋1 小时前
hot 100 第四十题 40.二叉树的层序遍历
数据结构·算法·leetcode
We་ct3 小时前
LeetCode 77. 组合:DFS回溯+剪枝,高效求解组合问题
开发语言·前端·算法·leetcode·typescript·深度优先·剪枝
小二·3 小时前
Go 语言系统编程与云原生开发实战(第38篇)
网络·云原生·golang
努力学算法的蒟蒻3 小时前
day105(3.6)——leetcode面试经典150
算法·leetcode·面试
小二·3 小时前
Go 语言系统编程与云原生开发实战(第39篇)
开发语言·云原生·golang
im_AMBER3 小时前
Leetcode 136 最小栈 | 逆波兰表达式求值
数据结构·学习·算法·leetcode·
识君啊3 小时前
Java字符串算法核心攻略
java·数据结构·算法·leetcode·字符串·
郝学胜-神的一滴3 小时前
力扣86题分隔链表:双链表拆解合并法详解
开发语言·数据结构·算法·leetcode·链表·职场和发展