122.买卖股票的最佳时机II
解题思路
代码实现
var maxProfit = function(prices) {
var res=0;
for(let i=1;i<prices.length;i++){
res += Math.max(prices[i]-prices[i-1], 0);
}
return res;
};
55. 跳跃游戏
解题思路
代码实现
var canJump = function(nums) {
var cover =0;
if(nums.length===1) return true;
for(let i =0; i<=cover;i++){
cover = Math.max(cover,i+nums[i]);
if(cover >= nums.length-1) return true;
}
return false;
};
45.跳跃游戏II
解题思路
代码实现
var jump = function(nums) {
if(nums.length ===1) return 0;
var cur =0; next =0;
var res =0;
for(let i =0;i <nums.length;i++){
next = Math.max(next,nums[i] + i);
if(i === cur && cur !== nums.length-1){
res++;
cur = next;
}
}
return res;
};
1005.K次取反后最大化的数组和
解题思路
代码实现
var largestSumAfterKNegations = function(nums, k) {
nums.sort((a, b)=>{
return a-b;
})
if(nums[0] > 0 && k%2==1 ){
nums[0] = -nums[0]
}else{
var count=0;
for(let i=0;i<k;i++){
if(nums[i] <0){
count++;
nums[i] = -nums[i];
}
}
nums.sort((a, b)=>{
return a-b;
})
if((k-count) %2 ===1 ){
nums[0] = -nums[0]
}
}
var res =0;
for(let i=0;i<nums.length;i++){
res += nums[i];
}
return res;
};