Contiguous Array - Codeprg

Breaking

programing News Travel Computer Engineering Science Blogging Earning

Sunday 9 August 2020

Contiguous Array


Contiguous Array

 

Given a binary array, find the maximum length of a contiguous subarray with equal number of 0 and 1.

Example 1:

Input: [0,1]
Output: 2
Explanation: [0, 1] is the longest contiguous subarray with equal number of 0 and 1.

Example 2:

Input: [0,1,0]
Output: 2
Explanation: [0, 1] (or [1, 0]) is a longest contiguous subarray with equal number of 0 and 1.

Note: The length of the given binary array will not exceed 50,000.

 

 

class Solution {
public:
    int findMaxLength(vector<int>& nums) {
        int cnt=0,ans=0;
        
        unordered_map<int,int> mp;
        mp[0]=-1;
        for(int i=0;i<nums.size();++i)
        {
            cnt+= nums[i]==0 ?-1:+1;
               if(mp.find(cnt)!=mp.end())
                   ans=max(ans,i-mp[cnt]);
               else
                   mp[cnt]=i;
        }
        
       return ans;
    }
};