mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 13:12:44 +00:00
feat(work): add solution for LeetCode 525 Contiguous Array
This commit is contained in:
1 parent
7b14673e95
commit
4875fd5139
1 file changed
+58
@@ -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
|
||||
Reference in new issue
Block a user