LeetCodeDiary

A Diary for solving LeetCode problems

View on GitHub
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/