刚开始做这道题是真的难到博主了,写了很多,弄得忒复杂,我边写还边嘲讽这题是个什么玩意儿,但当我看来官方题解后,恍然大悟,我是个什么玩意儿,真的很气愤,为什么自己想不到这样的题解,呜呜呜,枯了枯了。
好了,让我们进入正题吧:
题目解析首先这是一道贪心的题,我们要判断从初始数组的位置能否到达最后一个位置的下标处,我们可以假设y是数组中任意一个我们需要到达的下标处,此时我们可以从初始下标0处开始遍历数组,去寻找是否存在一个数的下标为x我们可以到达,如果存在这样的数x那么x+nums[x]就是该数可以跳跃的最大距离,只要最大跳跃距离>=y,即可返回true,若遍历完数组还没有找到这样的下标,则返回false,即可。
代码实现class Solution {
public:
bool canJump(vector& nums) {
int n=nums.size();
int ans=0;
for(int i=0;i=n-1)
return true;
}
return false;
}
};
总结
这道题就是这样的,如果能有这样的一种思想,那么题解就会很简单,不会写很多,理解起来也很容易,反正博主就是觉得,没事多多刷题,开扩一下自己的思维其实是很重要的!!!大家刷题不要停,加油哦!冲冲冲!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)