更新了一下写法,这样写不会爆int
PriorityQueue<Integer> pq = new PriorityQueue<Integer>((a,b) -> b > a?1:-1);
class Solution {
public int lastStoneWeight(int[] stones) {
PriorityQueue<Integer> pq = new PriorityQueue<Integer>((a,b) -> b - a);
for(int stone : stones){
pq.offer(stone);
}
while(pq.size() > 1){
int a = pq.poll();
int b = pq.poll();
if(a != b){
pq.offer(a - b);
}
}
return pq.isEmpty()? 0 : pq.poll();
}
}
这个写法是用了lam表达式的Compareto函数
- b - a也就是后面的减去前面的说明的降序。