https://leetcode.com/problems/contiguous-array/description/
//子数组之和跟结尾位置的坐标之间的映射
class Solution {
public:
int findMaxLength(vector<int>& nums) {
int res = 0, n = nums.size(), sum = 0;
map<int, int> M{{0, -1}}; //第一维度sum,第二维度index
for(int i=0; i<n; i++){
sum += (nums[i]==1)? 1:-1;
if(M.count(sum)){//第一维度有的话
res = max(res, i-M[sum]); //i - M[sum] 两个坐标索引相减
}
else{
M[sum] = i;
}
}
return res;
}
};