简单
技术面试0 次浏览

网易游戏中,一个角色每次移动可以前进 1 步或 2 步,现在该角色要到达第 n 步,有多少种不同的移动方法?请用 Python 实现。

网易算法工程师
Python动态规划游戏业务

答题要点

推荐答题框架:使用动态规划的思想,先分析问题的状态转移方程,再编写代码实现。关键要点:1. 状态定义:定义一个数组 dp,dp[i] 表示到达第 i 步的不同移动方法数。2. 初始化:初始化 dp[0] = 1,dp[1] = 1。3. 状态转移方程:dp[i] = dp[i - 1] + dp[i - 2]。4. 返回结果:返回 dp[n]。示例话术:我们可以使用动态规划来解决这个问题。首先,定义一个数组 dp 来保存到达每一步的不同移动方法数,然后根据状态转移方程更新 dp 数组,最后返回 dp[n]。以下是示例代码: python def climb_stairs(n): if n == 0 or n == 1: return 1 dp = [0] * (n + 1) dp[0] = 1 dp[1] = 1 for i in range(2, n + 1): dp[i] = dp[i - 1] + dp[i - 2] return dp[n]