class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return bool布尔型 */ bool can_jump(vector<int>& nums) { // write code here int n = nums.size(); int sum = 0; for (int i = 0; i < n; ++i) { if (sum < i)return false; sum = max(sum, i + nums[i]); if (sum >= n - 1) return true; } return false; } };
一、题目考察的知识点
贪心
二、题目解答方法的文字分析
依次遍历,判断每个位置是否能够到达终点,记录一下每个位置所能跳的最远距离,最远距离就是max(sum, i + nums[i]),在遍历的过程中判断一下看是否能跳到终点,如果可以就行
三、本题解析所用的编程语言
c++