连续数组

如题所述

第1个回答  2022-07-30

给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度)。

示例 1:

示例 2:

方法一:计算0和1相对数量
使用一个变量 count ,用来保存遍历数组过程中到目前为止遇到的 0 和 1 的相对数量。 遇到1 的时候,count 变量加 1 ,遇到 0 的时候 count 变量减 1

从头开始遍历数组,在任何时候,如果 count 变成了 0 ,这表示我们从开头到当前位置遇到的 0 和 1 的数目一样多。另一个需要注意的是,如果我们在遍历数组的过程中遇到了相同的 count 2 次,这意味着这两个位置之间 0 和 1 的数目一样多。

方法二:HashMap
和方法一类似,只是不用arr[n*2+1]存,改用map存

相似回答