- Leetcode 3154. Find Number of Ways to Reach the K-th Stair
- 1. 解題思路
- 2. 代碼實現
- 題目鏈接:3154. Find Number of Ways to Reach the K-th Stair
1. 解題思路
這一題思路上就是一個動態規劃,我們只需要確定一下運行的終止條件,然后寫一下地推函數即可。
顯然,由于減一操作不能連續進行,因此,如果某一次jump之后到達的位置大于k+1,此時必然就不可能再到達目標位置k了,我們跳出迭代即可。
2. 代碼實現
給出python代碼實現如下:
class Solution:def waysToReachStair(self, k: int) -> int:@lru_cache(None)def dp(loc, jump, allow_op1):ans = 0if loc == k:ans += 1if allow_op1 and loc != 0:ans += dp(loc-1, jump, False)if loc + jump <= k+1:ans += dp(loc+jump, jump * 2, True)return ansans = dp(1, 1, True)return ans
提交代碼評測得到:耗時116ms,占用內存18.4MB。