top of page
Search
Writer's pictureCoding Camp

Contiguous Array

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

Example 1:

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

Example 2:

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

Constraints:

  • 1 <= nums.length <= 105

  • nums[i] is either 0 or 1.

Solutions:

class Solution {
    public int findMaxLength(int[] nums) {
        for(int i=0;i<nums.length;i++)
        {
            if(nums[i]==0) 
                nums[i]=-1;
        }
        
        Map<Integer,Integer> map = new HashMap<>();
        map.put(0,-1);
        
        int sum=0, max=0;
        
        for(int i=0;i<nums.length;i++)
        {
            sum+=nums[i];
            if(map.containsKey(sum))
            {
                max=Math.max(max, i-map.get(sum));
            }
            else
            {
                map.put(sum,i);
            }
        }
         
        return max;
        
        
    }
}

37 views0 comments

Recent Posts

See All

コメント


bottom of page