Number of Ways to Stay in the Same Place After Some Steps LeetCode solution in Python
1class Solution:2def numWays(self, steps: int, arrLen: int) -> int:34# obtain maximum index we can reach5maxLen = min(steps + 1, arrLen)6dp = [0] * maxLen7dp[0] = 189for step in range(1, steps + 1):10dp2 = [0] * maxLen11for pos in range(maxLen):12# dp[step][pos] = dp[step-1][pos] + dp[step-1][pos-1] + dp[step-1][pos+1]13temp1 = 0 if pos == 0 else dp[pos - 1]14temp2 = 0 if pos == maxLen - 1 else dp[pos + 1]15dp2[pos] = (dp[pos] + temp1 + temp2) % (10**9 + 7)1617dp = dp218return dp[0]