链接: https://leetcode.cn/problems/contiguous-array/
题意
给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。
解法
第一眼以为是双指针
第二眼以为是dp
结果都不是
将数组中的所有0化为-1,问题就转化成求子数组和为0的最长长度
通过哈希表存储每个前缀和出现的第一次位置
当出现相同的前缀和时,索引相减即可得到结果
哈希+前缀和 妙啊
代码
1 | class Solution { |
但问耕耘,莫问收获
链接: https://leetcode.cn/problems/contiguous-array/
给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。
第一眼以为是双指针
第二眼以为是dp
结果都不是
将数组中的所有0化为-1,问题就转化成求子数组和为0的最长长度
通过哈希表存储每个前缀和出现的第一次位置
当出现相同的前缀和时,索引相减即可得到结果
哈希+前缀和 妙啊
1 | class Solution { |