当前位置: 代码迷 >> 综合 >> Leetcode 1005. K 次取反后最大化的数组和(DAY 116) ---- 贪心算法学习期
  详细解决方案

Leetcode 1005. K 次取反后最大化的数组和(DAY 116) ---- 贪心算法学习期

热度:56   发布时间:2023-11-17 18:18:01.0

原题题目

在这里插入图片描述


代码实现(首刷自解)

class Solution {
    
public:int largestSumAfterKNegations(vector<int>& nums, int k) {
    priority_queue<int,vector<int>,greater<int>> q;int sum = 0;for(const auto& num:nums)   q.emplace(num);while(k){
    int temp = q.top();q.pop();if(temp >= 0){
    if(!(k%2)){
    q.emplace(temp);break;}else {
    q.emplace(-temp);break;}}else    q.emplace(-temp);--k;}while(!q.empty()){
    sum += q.top();q.pop();}return sum;}
};