llllmz

导航

1005. K 次取反后最大化的数组和c


int largestSumAfterKNegations(int* nums, int numsSize, int k) {
    int t[201]={0};
    int sum=0;
    for(int i=0;i<numsSize;i++){
        t[100+nums[i]]++;
        sum+=nums[i];
    }
    while(k>0){
        for(int i=0;i<201;i++){
            if(t[i]!=0){
                t[i]--;
                t[200-i]++;
                int temp=i-100;
                if(temp<0) {
                    sum+=2*abs(temp);
                }else{
                    sum-=2*temp;
                }
                break;
            }
        }
        k--;
    }
    return sum;
}

结果;

posted on 2024-03-10 22:05  神奇的萝卜丝  阅读(15)  评论(0)    收藏  举报