122.买卖股票
class Solution {
public:
int maxProfit(vector<int>& prices) {
int money=0;
for(int i=0;i<prices.size()-1;i++){
money+=max(0,prices[i+1]-prices[i]);
}
return money;
}
};
跳跃游戏I
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(cover,i+nums[i]);//i
if(cover>=nums.size()-1){
return true;
}
}
return false;
}
};
跳跃游戏II
题目假设总是可以到达数组的最后一个位置
解题思路:当走到当前最大距离的时候,再加油,ans++,去更新当前最大距离=nextDistance
class Solution {
public:
int jump(vector<int>& nums) {
if(nums.size()==1) return 0;
int curDistance=0;
int ans=0;
int nextDistance=0;
for(int i=0;i<nums.size()-1;i++){
nextDistance=max(nums[i]+i,nextDistance);
if(i==curDistance){
ans++;
curDistance = nextDistance;
//if (nextDistance >= nums.size()-1)
//break;
}
}
return ans;
}
};