public static List<Integer> maxScoreIndices(int[] nums) {
int[] score=new int[2];//左右得分
int[] cnt=new int[2];//0和1的数量
List<Integer> ans=new ArrayList<>();//记录最大得分下标
for (int i = 0; i < nums.length; i++) {
if(nums[i]==0)
cnt[0]++;
else
cnt[1]++;
}
//定义i=0时为初始状态
score[1]=cnt[1];
ans.add(0);
int max=cnt[1];//记录历史最大得分
//遍历计算得分,当max更新时,ans也更新
for (int i = 1; i < nums.length+1; i++) {
//
if(nums[i-1]==0)
score[0]++;
else
score[1]--;
if(max<score[0]+score[1])
{
max=score[0]+score[1];
ans.clear();
ans.add(i);
}
else if(max==score[0]+score[1])
{
ans.add(i);
}
}
return ans;
}