[leetcode]525. Contiguous Array
Analysis
不想努力了,等一个富婆—— [每天刷题并不难0.0]
Given a binary array, find the maximum length of a contiguous subarray with equal number of 0 and 1.
Explanation:
把数组里的0都变成-1,然后一边求和一边记录下标位置,如果某个下标区间内和为0则表明该区间有相同个数的0和1,然后找一个最大的
Implement
class Solution {
public:
int findMaxLength(vector<int>& nums) {
int len = nums.size();
unordered_map<int, int> mmp;
int sum = 0;
int res = 0;
mmp[0] = -1;
for(int i=0; i<len; i++){
sum += (nums[i]==0)?-1:1;
if(mmp.find(sum)!=mmp.end())
res = max(res, i-mmp[sum]);
else
mmp[sum] = i;
}
return res;
}
};