Last Stone Weight

一个数组,有放回的拿出2个最大数相减,结果放回,问最后结果。因为是有放回,所以肯定结果是一个数。除非数组是空的。。。

class Solution {
    public int lastStoneWeight(int[] stones) {
        PriorityQueue<Integer> pq =  
             new PriorityQueue<Integer>(Collections.reverseOrder()); 
        for(int s : stones)
            pq.add(s);
        int size = pq.size();
        while(pq.size() > 1){
            int x = pq.poll();
            int y = pq.poll();
            pq.add(Math.abs(x-y));
        }
        return pq.peek();
    }
}