字节跳动高频题——圆环回原点问题
圆环上有10个点,编号为0~9。从0点出发,每次可以逆时针和顺时针走一步,问走n步回到0点共有多少种走法。
输入: 2输出: 2解释:有2种方案。分别是0->1->0和0->9->0
采用动态规划,类似 70. 爬楼梯
走 n 步到 0 的方案数 = 走 n-1 步到 1 的方案数 + 走 n-1 步到 9 的方案数。
由于本题目中有环,所以相关方程需要有取余的步骤。
dp[i][j] = dp[i-1][(j-1+length) % length] + dp[i-1][(j+1) % length]
1 | func backToOrigin(n): |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Bishop!
评论
GitalkValine