贪心的思路很简单
在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅仅是在某种意义上的局部最优解,也就是当前最贪婪的解。
跳跃游戏1
维护一个当前所能到达的最远点,从当前位置到这个最远点区间里,不停更新这个最远点,最后判断最远点是否能到达末尾
class Solution {
public:
bool canJump(vector<int>& nums) {
int maxPos=nums[0];
for(int i=0;i<nums.size()&&i<=maxPos;++i){
maxPos=max(maxPos,i+nums[i]);
}
return maxPos>=nums.size()-1;
}
};
跳跃游戏2
思路同一,需要记录跳跃次数。
int jump(vector<int>& nums) {
if(nums.size()<=