Files
leetcode-master/problems/1005.K次取反后最大化的数组和.md
youngyangyang04 8b640430de Update
2020-11-27 09:40:03 +08:00

479 B

class Solution {
static bool cmp(int a, int b) {
    return abs(a) < abs(b);
}
public:
    int largestSumAfterKNegations(vector<int>& A, int K) {
        sort(A.begin(), A.end(), cmp);
        for (int i = A.size() - 1; i >= 0; i--) {
            if (A[i] < 0 && K > 0) {
                A[i] *= -1;
                K--;
            }
        }
        while (K--) A[0] *= -1;
        int result = 0;
        for (int a : A) result += a;
        return result;
    }
};