题目
代码
【Python版本-傻瓜式】
class Solution:
def lastStoneWeight(self, stones: List[int]) -> int:
while len(stones)>1:
stones.sort()
x=stones[-1]
stones.pop()
y=stones[-1]
stones.pop()
if x!=y:
stones.append(abs(x-y))
if stones:
return stones[-1]
return 0
【CPP版本-最大堆】
class Solution {
public:
int lastStoneWeight(vector<int>& stones) {
priority_queue<int> q;
for (int s: stones) {
q.push(s);
}
while (q.size() > 1) {
int a = q.top();
q.pop();
int b = q.top();
q.pop();
if (a > b) {
q.push(a - b);
}
}
return q.empty() ? 0 : q.top();
}
};