由于数组的长度为 10 ** 5, 双重循环会超时,利用 一维 dp, 设置 dp[i] 表示 跳至 i 阶时最小的步数, 则 dp[i] = dp[j] + 1, j < i and j 从距离 i 最远的点跳过来, 即 A[j] 在 A[j:i] 中最大(最接近 i); 初始 dp = [0] * n, 设置 j 为初始索引遍历 dp , 判断每个 i 是由哪个 j 转移过来 while A[j] + j < i 循环,得到对应的 j,最终遍历完 dp[n - 1] 为 最终解 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 最少需要跳...