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++){
        sum+=nums[i];
        t[nums[i]+100]++;
    }
    while(k>0){
        for(int i=0;i<=200;i++){
            if(t[i]!=0){
                t[i]--;
                t[200-i]++;
                int x=i-100;
                printf("%d",x);
                if(x>0){
                    sum-=2*x;
                }else{
                    sum+=2*abs(x);
                }
                break;
            }   
        }
        k--;
    }
    return sum;
}

 

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