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/