#2790
Maximum Number of Groups With Increasing Length
international master · 2145 · lc hard +32 · verified · 23% accepted · 422 likes · top 3%
Description
A 0-indexed array usageLimits of length n is given. Create groups from numbers 0 through n - 1, where number i may appear in at most usageLimits[i] groups total. Groups must satisfy:
- Each number within a single group is distinct.
- Every group (after the first) must be strictly longer than the previous.
Return the maximum number of groups you can form under these constraints.
Example 1:
Input: usageLimits = [1,2,5]
Output: 3
Explanation: In this example, we can use 0 at most once, 1 at most twice, and 2 at most five times.
One way of creating the maximum number of groups while satisfying the conditions is:
Group 1 contains the number [2].
Group 2 contains the numbers [1,2].
Group 3 contains the numbers [0,1,2].
It can be shown that the maximum number of groups is 3.
So, the output is 3.
Example 2:
Input: usageLimits = [2,1,2]
Output: 2
Explanation: In this example, we can use 0 at most twice, 1 at most once, and 2 at most twice.
One way of creating the maximum number of groups while satisfying the conditions is:
Group 1 contains the number [0].
Group 2 contains the numbers [1,2].
It can be shown that the maximum number of groups is 2.
So, the output is 2.
Example 3:
Input: usageLimits = [1,1]
Output: 1
Explanation: In this example, we can use both 0 and 1 at most once.
One way of creating the maximum number of groups while satisfying the conditions is:
Group 1 contains the number [0].
It can be shown that the maximum number of groups is 1.
So, the output is 1.
Code
1
2
3