Description
https://leetcode.com/problems/maximize-sum-of-array-after-k-negations/
Given an array nums
of integers, we must modify the array in the following way: we choose an i
and replace nums[i]
with -nums[i]
, and we repeat this process k
times in total. (We may choose the same index i
multiple times.)
Return the largest possible sum of the array after modifying it in this way.
Example 1:
Input: nums = [4,2,3], k = 1 Output: 5 Explanation: Choose indices (1,) and nums becomes [4,-2,3].
Example 2:
Input: nums = [3,-1,0,2], k = 3 Output: 6 Explanation: Choose indices (1, 2, 2) and nums becomes [3,1,0,2].
Example 3:
Input: nums = [2,-3,-1,5,-4], k = 2 Output: 13 Explanation: Choose indices (1, 4) and nums becomes [2,3,-1,5,4].
Note:
1 <= nums.length <= 10000
1 <= k <= 10000
-100 <= nums[i] <= 100
Explanation
For each time of negation, change the minimum number.
Python Solution
class Solution:
def largestSumAfterKNegations(self, A: List[int], K: int) -> int:
while K > 0:
min_num = min(A)
min_num_index = A.index(min_num)
A[min_num_index] = -min_num
K -= 1
return sum(A)
- Time Complexity: O(N).
- Space Complexity: O(1).