题解 | #跳跃游戏(一)#
跳跃游戏(一)
https://www.nowcoder.com/practice/23407eccb76447038d7c0f568370c1bd
2022.0913算法第57题跳跃游戏(一)
这道题目使用贪心算法,代码简单,但是感觉还是挺难想的
每次都要找到当前位置所能跳到的最远位置,在最远位置内的位置都是能够到达的,
bool canJump(vector<int>& nums) { //记录当前位置能够到达的最远位置 //i + nums[i]位当前位置能够到达的最远位置,这个是一步 //需要记录的是之前所有位置能够到达的最远位置,也就是最终结果的最远位置,这个是多步 int end = 0; //遍历数组,查看是否能够到达 for (int i = 0; i < nums.size(); i++) { //当最远位置小于当前位置时,表明当前位置不能达到,返回false if (i > end) return false; //否则更新最远边界,确保最远边界始终最远。 end = max(end, i + nums[i]); } //循环结束表明每个位置都能达到 return true; }还是有点懵懂,过段时间还要复习。