Class Solution
- java.lang.Object
-
- g2101_2200.s2155_all_divisions_with_the_highest_score_of_a_binary_array.Solution
-
public class Solution extends Object
2155 - All Divisions With the Highest Score of a Binary Array.Medium
You are given a 0-indexed binary array
numsof lengthn.numscan be divided at indexi(where0 <= i <= n)into two arrays (possibly empty)numsleftandnumsright:numslefthas all the elements ofnumsbetween index0andi - 1(inclusive) , whilenumsrighthas all the elements of nums between indexiandn - 1(inclusive).- If
i == 0,numsleftis empty , whilenumsrighthas all the elements ofnums. - If
i == n,numslefthas all the elements of nums, whilenumsrightis empty.
The division score of an index
iis the sum of the number of0’s innumsleftand the number of1’s innumsright.Return all distinct indices that have the highest possible division score. You may return the answer in any order.
Example 1:
Input: nums = [0,0,1,0]
Output: [2,4]
Explanation: Division at index
-
0: numsleft is []. numsright is [0,0, 1 ,0]. The score is 0 + 1 = 1.
-
1: numsleft is [0 ]. numsright is [0, 1 ,0]. The score is 1 + 1 = 2.
-
2: numsleft is [0 , 0 ]. numsright is [1 ,0]. The score is 2 + 1 = 3.
-
3: numsleft is [0 , 0 ,1]. numsright is [0]. The score is 2 + 0 = 2.
-
4: numsleft is [0 , 0 ,1, 0 ]. numsright is []. The score is 3 + 0 = 3.
Indices 2 and 4 both have the highest possible division score 3.
Note the answer [4,2] would also be accepted.
Example 2:
Input: nums = [0,0,0]
Output: [3]
Explanation: Division at index
-
0: numsleft is []. numsright is [0,0,0]. The score is 0 + 0 = 0.
-
1: numsleft is [0 ]. numsright is [0,0]. The score is 1 + 0 = 1.
-
2: numsleft is [0 , 0 ]. numsright is [0]. The score is 2 + 0 = 2.
-
3: numsleft is [0 , 0 , 0 ]. numsright is []. The score is 3 + 0 = 3.
Only index 3 has the highest possible division score 3.
Example 3:
Input: nums = [1,1]
Output: [0]
Explanation: Division at index
-
0: numsleft is []. numsright is [1 , 1 ]. The score is 0 + 2 = 2.
-
1: numsleft is [1]. numsright is [1 ]. The score is 0 + 1 = 1.
-
2: numsleft is [1,1]. numsright is []. The score is 0 + 0 = 0.
Only index 0 has the highest possible division score 2.
Constraints:
n == nums.length1 <= n <= 105nums[i]is either0or1.
-
-
Constructor Summary
Constructors Constructor Description Solution()
-