Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fpdjsns/490b29a87a3188463688020726705547 to your computer and use it in GitHub Desktop.
Save fpdjsns/490b29a87a3188463688020726705547 to your computer and use it in GitHub Desktop.
[leetcode] 1005. Maximize Sum Of Array After K Negations : https://leetcode.com/problems/maximize-sum-of-array-after-k-negations/
class Solution {
public:
int largestSumAfterKNegations(vector<int>& A, int K) {
sort(A.begin(), A.end());
int answer = 0;
int lastMinus = 1e9;
for(int i=0;i<A.size();i++){
if(A[i] < 0){
if(0 < K){
A[i] *= -1; K--;
lastMinus = A[i];
}
} else {
if(0 < K){
K %= 2;
if(0 < K){
if(lastMinus < A[i])
answer -= 2 * lastMinus;
else
A[i] *= -1;
}
K = 0;
}
}
answer += A[i];
}
return answer;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment