Leetcode 3719. Longest Balanced Subarray I
- Leetcode 3719. Longest Balanced Subarray I
- 1. 解题思路
- 2. 代码实现
- 题目链接:3719. Longest Balanced Subarray I
1. 解题思路
这一题是题目3721. Longest Balanced Subarray II的简单版本,只需要暴力求解即可,倒是没啥需要多说的。
不过可惜的是更有挑战的题目3721我没有搞定,还挺伤的……
2. 代码实现
给出python代码实现如下:
class Solution:def longestBalanced(self, nums: List[int]) -> int:n = len(nums)odd, even = defaultdict(int), defaultdict(int)for num in nums:if num % 2 == 0:even[num] += 1else:odd[num] += 1ans = 0for i in range(n):if n-i <= ans:break_odd, _even = deepcopy(odd), deepcopy(even)for j in range(n-1, i, -1):if j+1 - i <= ans:breakif len(_odd) == len(_even):ans = j+1-ibreakif nums[j] % 2 == 0:_even[nums[j]] -= 1if _even[nums[j]] == 0:_even.pop(nums[j])else:_odd[nums[j]] -= 1if _odd[nums[j]] == 0:_odd.pop(nums[j])if nums[i] % 2 == 0:even[nums[i]] -= 1if even[nums[i]] == 0:even.pop(nums[i])else:odd[nums[i]] -= 1if odd[nums[i]] == 0:odd.pop(nums[i])return ans
提交代码评测得到:耗时1303ms,占用内存18.25MB。