一、122 买卖股票的最佳时机II
class Solution {
public:
int maxProfit(vector<int>& prices) {
int result = 0;
for(int i=1;i<prices.size();i++){
int tmp = (prices[i]-prices[i-1])>0?(prices[i]-prices[i-1]):0;
result += tmp;
}
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 cur = 0;
int next = 0;
int result = 0;
for(int i=0;i<nums.size();i++){
next = max(i+nums[i],next);
if(i==cur){
if(cur!=nums.size()-1){
result++;
cur = next;
}
if(cur>=nums.size()-1)
break;
}
}
return result;
}
};
四、1005 K次取反后最大化的数组和
class Solution {
private:
static bool cmp(int &a,int &b){
return abs(a)>abs(b);
}
public:
int largestSumAfterKNegations(vector<int>& nums, int k) {
int result = 0;
sort(nums.begin(),nums.end(),cmp);
for(int i=0;i<nums.size();i++){
if(nums[i]<0&&k>0){
nums[i] *= -1;
k--;
}
}
if(k%2==1)
nums[nums.size()-1] *= -1;
for(int i=0;i<nums.size();i++)
result += nums[i];
return result;
}
};