Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2019
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Runtime: 52 ms, faster than 99.29% of JavaScript online submissions for Maximize Sum Of Array After K Negations.
  2. // Memory Usage: 35 MB, less than 100.00% of JavaScript online submissions for Maximize Sum Of Array After K Negations.
  3.  
  4. var largestSumAfterKNegations = function(numbers, k) {
  5.     let negative = []
  6.     let minAbs = null
  7.     let sum = 0
  8.     numbers.forEach(item => {
  9.         if (item < 0) {
  10.             negative.push(item)
  11.         }
  12.         if (minAbs === null || Math.abs(minAbs) > Math.abs(item)) {
  13.             minAbs = item
  14.         }
  15.         sum += item
  16.     })
  17.     negative.sort((a, b) => a - b)
  18.     while (negative.length && k) {
  19.         sum -= negative.shift() * 2
  20.         k--
  21.     }
  22.     if (k % 2) {
  23.         sum -= Math.abs(minAbs) * 2
  24.     }
  25.     return sum
  26. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement