Java simplest solution in O(n)


#1

public class Solution {
public ArrayList flip(String str) {
ArrayList ans = new ArrayList<>();
int max=0;
int s_min=0;
int e_min=0;
int sum=0;
int s=0,e=0;
for(int i=0;i<str.length();i++){
e=i;
if(str.charAt(i)==‘0’){
sum+=1;
}else{
sum-=1;
}
if(sum<0){
sum=0;
s=i+1;
}
if(max<sum){
max=sum;
s_min=s;
e_min=e;
}
}
if(max!=0){
ans.add(s_min+1);
ans.add(e_min+1);
}
return ans;
}
}