122.买卖股票的最佳时机 II
数组两两求差,然后把正数加起来
class Solution {
public:
int maxProfit(vector<int>& prices) {
int sum=0;
int diff=0;
for(int i=0;i<prices.size()-1;i++){
diff= prices[i+1] - prices[i];
if(diff>0){
sum+=diff;
}
}
return sum;
}
};
#55. 跳跃游戏
这道题只需要理解一句话,就是确保coverage覆盖的 范围能到达末尾就可以,自己写的差不多但是有些细节写错了所以代码过不了
class Solution {
public:
bool canJump(vector<int>& nums) {
int coverage = 0;
if ( nums.size() <= 1) return true;
//for ( int i = 0; i < nums.size()-1; i++) { 这句这么写不对,举例子【0,2,3】这样第一个数就不行
for(int i = 0; i <=coverage; i++) {
// coverage = nums[i] + i; 这句写错了,需要再i遍历的过程中把最大的coverage取出来
coverage = max (coverage, nums[i] + i);
if( coverage >= nums.size() - 1) {
return true;
}
}
return false;
}
};