【leetcode】K 次取反后最大化的数组和

 

int cmp(const void* a, const void* b){
    return abs(*(int*)b) - abs(*(int*)a);
}
int largestSumAfterKNegations(int* A, int ASize, int K){
    int i,sum=0;
    qsort(A,ASize,sizeof(int),cmp);
    for (i=0; i<ASize; i++)
    {
        if (K && A[i] < 0) 
        {
            A[i] *= -1;
            K--;
        }
        sum+=A[i];
    }
    return (K % 2)? sum - 2*A[ASize-1] : sum;
}

 

posted @ 2020-09-20 11:38  温暖了寂寞  阅读(118)  评论(0编辑  收藏  举报