Last updated on October 5th, 2024 at 04:21 pm
Here, We see Contiguous Array LeetCode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.
List of all LeetCode Solution
Topics
Hash Table
Companies
Level of Question
Medium
Contiguous Array LeetCode Solution
Table of Contents
Problem Statement
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.
1. Contiguous Array Leetcode Solution C++
class Solution { public: int findMaxLength(vector<int>& nums) { int maxlen = 0; for (int i = 0; i < nums.size(); i++) { int zeroes = 0, ones = 0; for (int j = i; j < nums.size(); j++) { if (nums[j] == 0) { zeroes++; } else { ones++; } if (zeroes == ones) { maxlen = max(maxlen, j - i + 1); } } } return maxlen; } };
2. Contiguous Array Leetcode Solution Java
class Solution { public int findMaxLength(int[] nums) { int n = nums.length; Map<Integer, Integer> mp = new HashMap<>(); int sum = 0; int subArrayLength = 0; for (int i = 0; i < n; i++) { sum += nums[i] == 0 ? -1 : 1; if (sum == 0) { subArrayLength = i + 1; } else if (mp.containsKey(sum)) { subArrayLength = Math.max(subArrayLength, i - mp.get(sum)); } else { mp.put(sum, i); } } return subArrayLength; } }
3. Contiguous Array Leetcode Solution JavaScript
var findMaxLength = function(nums) { let mp = new Map(); let sum = 0; let subArrayLength = 0; for (let i = 0; i < nums.length; i++) { sum += nums[i] === 0 ? -1 : 1; if (sum === 0) { subArrayLength = i + 1; } else if (mp.has(sum)) { subArrayLength = Math.max(subArrayLength, i - mp.get(sum)); } else { mp.set(sum, i); } } return subArrayLength; };
4. Contiguous Array Leetcode Solution Python
class Solution(object): def findMaxLength(self, nums): mp = {} sum_val = 0 max_len = 0 for i, num in enumerate(nums): sum_val += 1 if num == 1 else -1 if sum_val == 0: max_len = i + 1 elif sum_val in mp: max_len = max(max_len, i - mp[sum_val]) else: mp[sum_val] = i return max_len