Class Solution
Hard
You are given 3 positive integers zero, one, and limit.
A binary array arr is called stable if:
- The number of occurrences of 0 in
arris exactlyzero. - The number of occurrences of 1 in
arris exactlyone. - Each subarray of
arrwith a size greater thanlimitmust contain both 0 and 1.
Return the total number of stable binary arrays.
Since the answer may be very large, return it modulo 109 + 7.
Example 1:
Input: zero = 1, one = 1, limit = 2
Output: 2
Explanation:
The two possible stable binary arrays are [1,0] and [0,1].
Example 2:
Input: zero = 1, one = 2, limit = 1
Output: 1
Explanation:
The only possible stable binary array is [1,0,1].
Example 3:
Input: zero = 3, one = 3, limit = 2
Output: 14
Explanation:
All the possible stable binary arrays are [0,0,1,0,1,1], [0,0,1,1,0,1], [0,1,0,0,1,1], [0,1,0,1,0,1], [0,1,0,1,1,0], [0,1,1,0,0,1], [0,1,1,0,1,0], [1,0,0,1,0,1], [1,0,0,1,1,0], [1,0,1,0,0,1], [1,0,1,0,1,0], [1,0,1,1,0,0], [1,1,0,0,1,0], and [1,1,0,1,0,0].
Constraints:
1 <= zero, one, limit <= 1000
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlongcomb(int n, int k) longgetInverse(long n, long mod) intnumberOfStableArrays(int zero, int one, int limit) longquickPower(long base, long power, long p)
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
numberOfStableArrays
public int numberOfStableArrays(int zero, int one, int limit) -
comb
public long comb(int n, int k) -
getInverse
public long getInverse(long n, long mod) -
quickPower
public long quickPower(long base, long power, long p)
-