LeetCode 1005. Maximize Sum Of Array After K Negations (K 次取反后最大化的数组和)

题目标签:Greedy

  每一次都找最小的值 进行更改。

  可以利用 priority queue 来实现操作。

  具体看code。

 

Java Solution: 

Runtime:  5 ms, faster than 33.84% 

Memory Usage: 38.6 MB, less than 11.76 %

完成日期:02/26/2020

关键点:priority queue

class Solution {
    public int largestSumAfterKNegations(int[] A, int K) {
        PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
        int sum = 0;
        
        for(int x: A) {
            pq.add(x);
        }
        
        while( K--  > 0) {
          pq.add(-pq.poll());  
        } 
        
        for(int i = 0; i < A.length; i++) {
            sum += pq.poll();
        }
        
        return sum;
    }
}

参考资料:LeetCode Discuss

LeetCode 题目列表 - LeetCode Questions List

题目来源:https://leetcode.com/

 

posted @ 2020-03-08 06:08  Jimmy_Cheng  阅读(104)  评论(0编辑  收藏  举报