Leetcode-2513

Minimize the Maximum of Two Arrays

Time complexity: $O(1)$

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#include <iostream>
#include <numeric>

class Solution {
public:
    int minimizeSet(int divisor1, int divisor2, int uniqueCnt1, int uniqueCnt2) {
        long long divisor0 = (long long)divisor1 / std::gcd(divisor1, divisor2) * divisor2;
        int a = (uniqueCnt1 - 1) / (divisor1 - 1) + uniqueCnt1;
        int b = (uniqueCnt2 - 1) / (divisor2 - 1) + uniqueCnt2;
        int c = (uniqueCnt1 + uniqueCnt2 - 1) / (divisor0 - 1) + uniqueCnt1 + uniqueCnt2;
        return std::max(c, std::max(a, b));
    }
};

Leetcode-2513

Licensed under CC BY-NC-SA 4.0