0
点赞
收藏
分享

微信扫一扫

【公平的糖果交换(888-java)】

林肯公园_97cc 2022-01-09 阅读 30

公平的糖果交换(888-java)

public class LC233_888_fairCandySwap {
    //排序
    public static int[] fairCandySwap(int[] aliceSizes, int[] bobSizes) {
        //1.分别计算总和
        //2.求差值
        //3.遍历a
        //4.遍历b找结果
        int aSum = 0, bSum = 0;
        for (int i : aliceSizes) {
            aSum += i;
        }
        for (int i : bobSizes) {
            bSum += i;
        }
        int total = aSum + bSum;
        int target = total / 2;
        int diff = target - aSum;
        int[] ans = new int[2];
        for (int i = 0; i < aliceSizes.length; i++) {
            if (find(bobSizes, aliceSizes[i] + diff)) {
                ans[0] = aliceSizes[i];
                ans[1] = aliceSizes[i] + diff;
                break;
            }
        }
        return ans;
    }

    private static boolean find(int[] bobSizes, int i) {
        for (int bobSize : bobSizes) {
            if (bobSize == i) {
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int[] ints = fairCandySwap(new int[]{1, 1}, new int[]{2, 2});
        for (int anInt : ints) {
            System.out.print(anInt + " ");
        }
    }
}
举报

相关推荐

0 条评论