目录


今天的题目是纯模拟题,截止目前通过率有70%,是非常简单的。
本来这种简单题是不想写题解的,不过有个细节值得说一说。
那就是分宝石时的数量是向下取整的,也就是如果宝石的奇数,那么分出去的宝石直接就是原本宝石数/2,不过自己剩下的宝石就不能直接/2了。而是应该为 n-n/2 。
- class Solution {
- public:
- int giveGem(vector<int>& gem, 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];
- }
- };