题目:
我的解法:最大堆
class Solution {
public int lastStoneWeight(int[] stones) {
PriorityQueue<Integer> pq = new PriorityQueue<Integer>(
new Comparator<Integer>(){
public int compare(Integer stone1, Integer stone2){
return stone2 - stone1;
}
}
);
for(int stone: stones){
pq.add(stone);
}
while(pq.size()>=2){
Integer st1 = pq.poll();
Integer st2 = pq.poll();
if(st1 > st2){
pq.add(st1-st2);
}
}
return pq.size()==1 ? pq.poll():0;
}
}
官方题解: