//绝对值从大到小排序,判断其是否为负数,把前面的负数反转
//如果没有负数,且k大于0,把绝对值小的正数反转
var largestSumAfterKNegations = function(nums, k) {
nums.sort((a,b)=>{
return Math.abs(b)-Math.abs(a)
})
//循环把负数反转
for(let i=0;i<nums.length;i++){
if(nums[i]<0&&k>0){
nums[i]*=-1
k--
}
}
//把最小的绝对值反复反转
let len=nums.length-1
if(k>0&&k%2==1){
nums[len]*=-1
}
k=0
return nums.reduce((a,b)=>{
return a+b
})
};
1005. K 次取反后最大化的数组和(javascript)
最新推荐文章于 2024-06-22 21:53:36 发布