From 4875fd513982f24b83c7c800312b3cbb3fa2d9d2 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Fri, 2 Oct 2026 13:03:24 -0400 Subject: [PATCH] feat(work): add solution for LeetCode 525 Contiguous Array --- work/1/Medium/Array/525.contiguous-array.py | 58 +++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 work/1/Medium/Array/525.contiguous-array.py diff --git a/work/1/Medium/Array/525.contiguous-array.py b/work/1/Medium/Array/525.contiguous-array.py new file mode 100644 index 0000000..ca5885a --- /dev/null +++ b/work/1/Medium/Array/525.contiguous-array.py @@ -0,0 +1,58 @@ +""" +525. Contiguous Array +Difficulty: Medium +https://leetcode.com/problems/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. + +Example 3: + +Input: nums = [0,1,1,1,1,1,0,0,0] +Output: 6 +Explanation: [1,1,1,0,0,0] is the longest contiguous subarray with +equal number of 0 and 1. + + + +Constraints: + + • 1 <= nums.length <= 10^5 + + • nums[i] is either 0 or 1. +""" + + +class Solution: + def findMaxLength(self, nums: List[int]) -> int: + map = {0: -1} + count = 0 + longest = 0 + + for i, num in enumerate(nums): + count += 1 if num == 1 else -1 + + if count in map: + longest = max(longest, i - map[count]) + else: + map[count] = i + + return longest