【数据结构-前缀哈希】力扣525. 连续数组
创始人
2024-11-04 22:11:42
0

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

示例 1:
输入: nums = [0,1]
输出: 2
说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。

示例 2:
输入: nums = [0,1,0]
输出: 2
说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。

在这里插入图片描述

class Solution { public:     int findMaxLength(vector& nums) {         for(int &num : nums){             if(num == 0){                 num = -1;             }         }             int sum = 0,res = 0;         unordered_map group;         for(int i = 0;i < nums.size();i++){             sum += nums[i];             if(sum == 0){                 res = i + 1;             }             if(group.contains(sum)){                 res = max(res, i - group[sum]);             }             else{                 group[sum] = i;             }         }         return res;     } }; 

时间复杂度:O(n),其中 n 是数组 nums 的长度。需要遍历数组一次。
空间复杂度:O(n)

将nums中的0全部替换成-1,然后定义一个哈希表group,键用来储存sum,值用来储存对应的前缀和的下标。当前计算前缀和sum的时候,如果前面有相同的前缀和,说明中间这个子段和为0,也就说明0和1的数量相等,所以这个时候i - group[sum]来求这个子段的长度。然后不断比较求的0和1数量相等的最大子段长度。

相关内容

热门资讯

推荐一款!牛牛房卡哪里有卖的海... 推荐一款!牛牛房卡哪里有卖的海航大厅/微信链接房间卡怎么购买海航大厅是一款非常受欢迎的游戏,咨询房/...
ia实测“在哪里买炸金花房卡哪... 随意玩是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享...
我来教你/牛牛房卡代理新超圣/... 微信游戏中心:新超圣房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程序...
秒懂教程!拼三张房卡如何购买,... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
IA解析/金花房卡代理零售天启... 天启联盟是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
一分钟了解“微信群链接牛牛买房... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
正规平台有哪些,牛牛房卡制作链... 今 日消息,乐酷大厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
秒懂教程!拼三张房卡如何购买,... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享...
ia实测“如何在微信上购买金花... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
正规平台有哪些,金花房间怎么创... 流樱大厅/新道游是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:33...
秒懂教程!微信炸金花房卡哪里有... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
我来教你/牛牛房卡怎么获得乐酷... 您好!微信乐酷大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(乐酷大厅)大厅介绍:...
一分钟了解“买房卡的金花房代理... 海贝之城是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡...
我来教你/牛牛房卡官网玫瑰大厅... 我来教你/牛牛房卡官网玫瑰大厅/房卡链接怎么获取玫瑰大厅是一款非常受欢迎的游戏,咨询房/卡添加微信:...
科技实测!金花房卡批发价荣耀乐... 微信游戏中心:荣耀乐娱房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
一分钟推荐“创建金花房间链接教... 神皇大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡...
头条推荐!如何购买金花房卡皇豪... 皇豪互娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
秒懂教程!拼三张房卡链接在哪弄... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享...
重大通报,牛牛房卡哪里有卖的新... 今 日消息,新道游/皇豪互娱房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更...
正版授权!牛牛房卡出售江山大厅... 江山大厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...