varlargestSumAfterKNegations=function(nums, k){const freq =newMap();for(const num of nums){
freq.set(num,(freq.get(num)||0)+1);}let ans = _.sum(nums);for(let i =-100; i <0;++i){if(freq.has(i)){const ops = Math.min(k, freq.get(i));
ans +=(-i)* ops *2;
freq.set(i, freq.get(i)- ops);
freq.set(-i,(freq.get(-i)||0)+ ops);
k -= ops;if(k ===0){break;}}}if(k >0&& k %2===1&&!freq.has(0)){for(let i =1; i <=100;++i){if(freq.has(i)){
ans -= i *2;break;}}}return ans;};
9. 加油站
varcanCompleteCircuit=function(gas, cost){const n = gas.length;let i =0;while(i < n){let sumOfGas =0, sumOfCost =0;let cnt =0;while(cnt < n){const j =(i + cnt)% n;
sumOfGas += gas[j];
sumOfCost += cost[j];if(sumOfCost > sumOfGas){break;}
cnt++;}if(cnt === n){return i;}else{
i = i + cnt +1;}}return-1;};
10. 分发糖果
varcandy=function(ratings){const n = ratings.length;const left =newArray(n).fill(0);for(let i =0; i < n; i++){if(i >0&& ratings[i]> ratings[i -1]){
left[i]= left[i -1]+1;}else{
left[i]=1;}}let right =0, ret =0;for(let i = n -1; i >-1; i--){if(i < n -1&& ratings[i]> ratings[i +1]){
right++;}else{
right =1;}
ret += Math.max(left[i], right);}return ret;};