888 LeetCode 公平的糖果交换

题目描述:
在这里插入图片描述

思路:
首先计算平均值,然后记录其中一个小孩子的糖果数量,最后依次查询另一个孩子与请均值的差,是否存在

代码如下:

class Solution {
public:
    vector<int> fairCandySwap(vector<int>& A, vector<int>& B) {
        vector<int>res;
        int sum1=0,sum2=0;
        map<int,int>cnt;
        for(int i=0;i<A.size();i++){
            sum1+=A[i];
        }
        for(int i=0;i<B.size();i++){
            sum2+=B[i];
        }
        for(int i=0;i<B.size();i++){
            cnt[B[i]]++;
        }
        int temp=sum1-(sum1+sum2)/2;
        for(int i=0;i<A.size();i++){
            if(cnt[A[i]-temp]>0){
                res.push_back(A[i]);
                res.push_back(A[i]-temp);
                return res;
            }
        }
        return res;
    }
};
发布了158 篇原创文章 · 获赞 0 · 访问量 1629

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104515204