Last updated 2 years ago
vector<int> Solution::flip(string A) { int n = A.size(); vector<int> res; vector<int> kaden; int hasZero = false; for(int x: A) if(x == '0') { hasZero = true; kaden.push_back(1); } else kaden.push_back(-1); if(!hasZero) return res; res.push_back(0); res.push_back(0); int sum = -1, maxSum = -1; int left = 0; for(int i = 0; i < n; i++) { if(sum < 0) { left = i + 1; sum = kaden[i]; } else sum += kaden[i]; if(sum > maxSum) { maxSum = sum; res[0] = left; res[1] = i + 1; } } return res; }