122. 买卖股票的最佳时机 II
class Solution {
public:
int maxProfit(vector<int>& prices) {
int result = 0;
for(int i = 1; i < prices.size(); i ++){
result += max(prices[i] - prices[ i - 1], 0);
}
return result;
}
};
55. 跳跃游戏 link
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 link
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(); i ++){
nextDistance = max(nums[i] + i, nextDistance);
if(i == curDistance){
ans ++;
curDistance = nextDistance;
if(nextDistance >= nums.size() - 1) break;
}
}
return ans;
}
};
1005. K 次取反后最大化的数组和 link
class Solution {
public:
static bool cmp(int a, int b){
return abs(a) > abs(b);
}
int largestSumAfterKNegations(vector<int>& nums, int k) {
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;
int result = 0;
for(int a: nums) result += a;
return result;
}
};