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
nums
of lengthn
.nums
can be divided at indexi
(where0 <= i <= n)
into two arrays (possibly empty)numsleft
andnumsright
:numsleft
has all the elements ofnums
between index0
andi - 1
(inclusive) , whilenumsright
has all the elements of nums between indexi
andn - 1
(inclusive).- If
i == 0
,numsleft
is empty , whilenumsright
has all the elements ofnums
. - If
i == n
,numsleft
has all the elements of nums, whilenumsright
is empty.
The division score of an index
i
is the sum of the number of0
’s innumsleft
and 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.length
1 <= n <= 105
nums[i]
is either0
or1
.
-
-
Constructor Summary
Constructors Constructor Description Solution()
-