本文共 746 字,大约阅读时间需要 2 分钟。
原题目:
思路:
贪心法,每次排序,取最后的两个元素,如果相等pop两次,否则做加法,pop一次。
最后判断stones的大小,因为while的最后一次的stones的size是2,可能出现上述两种情况。
代码:
class Solution {public: int lastStoneWeight(vector & stones) { if(stones.size()==1) return stones[0]; if(stones.size()==2) return abs(stones[1]-stones[0]); while(stones.size()>1){ sort(stones.begin(),stones.end()); int len = stones.size(); if(stones[len-1] == stones[len-2]){ stones.pop_back(); stones.pop_back(); } else{ stones[len - 2] = stones[len - 1] - stones[len-2]; stones.pop_back(); } } if(stones.size()) return stones[0]; else return 0; }};
转载地址:http://bdpzi.baihongyu.com/