首页 > 试题广场 >

未排序数组中累加和为给定值的最长子数组系列问题补2

[编程题]未排序数组中累加和为给定值的最长子数组系列问题补2
  • 热度指数:2145 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个无序数组arr,其中元素只能是1或0。求arr所有的子数组中0和1个数相等的最长子数组的长度 
[要求]
时间复杂度为,空间复杂度为

输入描述:
第一行一个整数N,表示数组长度
接下来一行有N个数表示数组中的数


输出描述:
输出一个整数表示答案
示例1

输入

5
1 0 1 0 1

输出

4

备注:
头像 快支棱起来的椰子很愤怒
发表于 2022-01-10 13:19:03
n = int(input()) nums = list(map(int, input().split())) dic = {0: -1} su = 0 res = -1 for i in range(len(nums)): if nums[i] == 0: su -= 1 展开全文
头像 哈哈~柳暗花明
发表于 2020-07-30 13:42:01
同上一题 def solve(l, n): m = {0:-1} a = ans = 0 for i in range(n): a += 1 if l[i] else -1 if a not in m.keys(): m 展开全文
头像 牛客695415901号
发表于 2024-04-12 00:38:02
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new 展开全文