525. 连续数组
Posted ai52learn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了525. 连续数组相关的知识,希望对你有一定的参考价值。
给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。
示例 1:
输入: nums = [0,1]
输出: 2
说明: [0, 1] 是具有相同数量0和1的最长连续子数组。
示例 2:
输入: nums = [0,1,0]
输出: 2
说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。
提示:
1 <= nums.length <= 105
nums[i] 不是 0 就是 1
class Solution {
public:
int findMaxLength(vector<int>& nums) {
int pre=0,p;
map<int,int> mp;
mp[0]=-1;
int ret = 0;
for(int i = 0;i<nums.size();++i)
{
pre = p = pre+(nums[i]==1?1:-1);
auto it = mp.find(p);
if(it!=mp.end())
{
ret = max(ret,i-(it->second));
}
else
mp[p] = i;
}
return ret;
}
};
以上是关于525. 连续数组的主要内容,如果未能解决你的问题,请参考以下文章