码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-03-08 10:09:53      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:题目   imm   jimmy   public   标签   add   etc   操作   length   

题目标签: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/

 

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

标签:题目   imm   jimmy   public   标签   add   etc   操作   length   

原文地址:https://www.cnblogs.com/jimmycheng/p/12440790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!