概述
题目:原题链接(困难)
标签:动态规划
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N ) O(N) O(N) | O ( N ) O(N) O(N) | 204ms (71.62%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class Solution:
def canCross(self, stones: List[int]) -> bool:
size = len(stones)
index = {stone: i for i, stone in enumerate(stones)}
if stones[1] - stones[0] != 1:
return False
dp = [set() for _ in range(size)]
dp[1].add(stones[1] - stones[0])
for i in range(1, size):
stone = stones[i]
for step in dp[i]:
if stone + step + 1 in index:
dp[index[stone + step + 1]].add(step + 1)
if stone + step in index:
dp[index[stone + step]].add(step)
if step > 1 and stone + step - 1 in index:
dp[index[stone + step - 1]].add(step - 1)
return len(dp[-1]) > 0
最后
以上就是结实小鸭子为你收集整理的LeetCode题解(0403):青蛙过河(Python)的全部内容,希望文章能够帮你解决LeetCode题解(0403):青蛙过河(Python)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复