本文共 836 字,大约阅读时间需要 2 分钟。
在跳跃游戏问题中,我们需要判断给定数列中是否可以从起点到达终点。解决这个问题的核心在于理解当前位置以及所能走动的最大范围。
#includeusing namespace std;class Solution {public: bool canJump(vector nums) { int max_index = 0; for (int i = 0; i < nums.size(); ++i) { if (max_index >= i) { break; } max_index = min(max_index + nums[i], nums.size() - 1); } return max_index >= nums.size() - 1; }};
这道题可以通过贪心算法来解决。如果我们能够一直保持当前位置不超过最大能够跳跃的位置,那么就能到达终点。
max_index
,初始值为当前位置。max_index
。max_index
,说明不能到达终点。true
,否则返回 false
。max_index
用于记录当前能到达的最远索引位置。通过这种方法,我们能够高效地判断是否能完成跳跃任务。
转载地址:http://wfhtz.baihongyu.com/