leetcode-华为专题-888. 公平的糖果棒交换

 

 

class Solution {
public:
    vector<int> fairCandySwap(vector<int>& aliceSizes, vector<int>& bobSizes) {
        int sum1 = 0;
        int sum2 = 0;

        for(int i = 0; i < aliceSizes.size();i++)
            sum1 += aliceSizes[i];  
        for(int i = 0; i < bobSizes.size();i++)
            sum2 += bobSizes[i];  

        sort(aliceSizes.begin(), aliceSizes.end());
        sort(bobSizes.begin(), bobSizes.end());

        int val = sum1-sum2;
        vector<int> res;
        if(val%2==1)
            return res;

        int i =0;
        int j =0;
        cout<<"val: "<<val<<endl;
        int temp = 0;
        while(i<aliceSizes.size()&&j<bobSizes.size()){
            temp = aliceSizes[i]-bobSizes[j];
            if(temp==val/2){
                res.push_back(aliceSizes[i]);
                res.push_back(bobSizes[j]);
                return res;
            }else if(temp>val/2){
                j++;
            }else if(temp<val/2){
                i++;
            }
        }
        return res;
    }
};

 

posted @ 2021-08-16 17:16  三一一一317  阅读(41)  评论(0)    收藏  举报