31_1046. 最后一块石头的重量
题目描述:
解题思路:
将所有的石头重量,放入最大堆里面,每次出队两个进行比较,直至剩下最后一块石头。
代码:
最大堆
class Solution {
public int lastStoneWeight(int[] stones) {
PriorityQueue pq = new PriorityQueue((a,b)->(b-a));
int len = stones.length;
for (int i = 0; i < len; i++) {
pq.offer(stones[i]);
}
while (pq.size() > 1) {
int y = pq.poll();
int x = pq.poll();
if (x == y) {
continue;
}
y = y - x;
pq.offer(y);
}
if (pq.isEmpty()) {
return 0;
}
return pq.poll();
}
}