目录
题目:
示例:
分析:
今天的题目是纯模拟题,截止目前通过率有70%,是非常简单的。
本来这种简单题是不想写题解的,不过有个细节值得说一说。
那就是分宝石时的数量是向下取整的,也就是如果宝石的奇数,那么分出去的宝石直接就是原本宝石数/2,不过自己剩下的宝石就不能直接/2了。而是应该为 n-n/2 。
代码:
class Solution {
public:
int giveGem(vector<int>& gem, vector<vector<int>>& operations) {
for(auto& o:operations){ //模拟分宝石
gem[o[1]]+=gem[o[0]]/2;
gem[o[0]]-=gem[o[0]]/2;
}
sort(gem.begin(),gem.end()); //排序后第一个和最后一个分别是宝石最少和最多的数量
return *(gem.end()-1)-gem[0];
}
};