目录
122买卖股票的最佳时机II
class Solution {
public:
int maxProfit(vector<int>& prices) {
int result = 0;
if(prices.size() == 1) return 0;
for(int i = 0; i < prices.size()-1; i++){
if(prices[i+1] > prices[i]){//如果后一个值比前一个值大
result += prices[i+1] - prices[i];//就把这个差值记录result里面
}
}
return result;
}
};
55 跳跃游戏
class Solution {
public:
bool canJump(vector<int>& nums) {
int cover = 0;
if(nums.size() == 1) return true;
for(int i = 0; i <= cover; i++){//把覆盖值当成临界条件,可以实时更改
//负责记录最大范围
//把当前的数组值和下标值加起来和之前的覆盖值比较看看哪个大
cover = max(i + nums[i], cover);
if(cover >= nums.size()-1){
return true;
}
}
return false;
}
};
45 跳跃游戏II
class Solution {
public:
int jump(vector<int>& nums) {
int result = 0;
int cur = 0;
int next = 0;
if(nums.size() == 1){
return cur;
}
for(int i = 0; i < nums.size(); i++){
next = max(i + nums[i], next);
if(i == cur){//数组遍历到,我们当前指向的最大范围时
if(cur <= nums.size()-1){//如果当前最大值没有达到数组大小,我们就改变当前最大值的值,调用next
result++;
cur = next;//让当前最大范围指向下一个最大范围
if(cur >= nums.size()-1){//如果在赋值之后大于了,也可以直接中断循环
break;
}
}
}
}
return result;
}
};