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;}
};