diff --git "a/leetcode3/\354\265\234\353\257\274\354\247\200/403.py" "b/leetcode3/\354\265\234\353\257\274\354\247\200/403.py" new file mode 100644 index 00000000..f1d091f2 --- /dev/null +++ "b/leetcode3/\354\265\234\353\257\274\354\247\200/403.py" @@ -0,0 +1,18 @@ +class Solution: + def canCross(self, stones: List[int]) -> bool: + + if stones[1] != 1: + return False + + dp = {stone: set() for stone in stones} + + dp[0].add(0) + + for stone in stones: + for k in dp[stone]: + for step in (k - 1, k, k + 1): + if step > 0 and (stone + step) in dp: + dp[stone + step].add(step) + + return len(dp[stones[-1]]) > 0 + \ No newline at end of file