- 买卖股票的最佳时机 II
class Solution {
public:int maxProfit(vector<int>& prices) {int answer = 0;for(int i = 1 ; i < prices.size(); i++){if(prices[i] - prices[i - 1] > 0)answer += prices[i] - prices[i - 1];}return answer;}
};
- 跳跃游戏
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, nums[i] + i);if(cover >= nums.size() - 1)return true;}return false;}
};
- 跳跃游戏 II
class Solution {
public:int jump(vector<int>& nums) {int n = nums.size();int height = 0;int ans = 0;vector<int> dp(n, n + 1);dp[0] = 0;for(int i = 0; i < n; i++){for(int j = i - 1; j >= 0; j--){if(nums[j] + j >= i)dp[i] = min(dp[i], dp[j] + 1);}}return dp[n - 1];}
};
- K 次取反后最大化的数组和
class Solution {
public:int largestSumAfterKNegations(vector<int>& nums, int k) {sort(nums.begin(), nums.end());int result = 0;for(int i = 0; i < nums.size(); i++){if(k > 0 && nums[i] <= 0){nums[i] = -1 * nums[i];k--;}result += nums[i];}sort(nums.begin(), nums.end());return result - (k % 2 == 0? 0: 2 * nums[0]);}
};