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