class Solution:
def canCross(self, stones: List[int]) -> bool:
set_stones=set(stones)
dp = defaultdict(set)
dp[0]={0}
for s in stones:
for step in dp[s]:
for d in [-1,0,1]:
if step+d>0 and s+step+d in set_stones:
dp[s+step+d].add(step+d)
return len(dp[stones[-1]])>0
动态规划 困难 每日一题
不想做题的一天
https://leetcode-cn.com/problems/frog-jump/