LeetCode 525. 连续数组(前缀和+哈希)

1. 题目

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

示例 1:
输入: [0,1]
输出: 2
说明: [0, 1] 是具有相同数量01的最长连续子数组。示例 2:
输入: [0,1,0]
输出: 2
说明: [0, 1] ([1, 0]) 是具有相同数量01的最长连续子数组。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/contiguous-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:
LeetCode 560. 和为K的子数组(前缀和差分)
LeetCode 1248. 统计「优美子数组」(要复习)

  • 把0看成-1,找和为0的最长长度,跟560题差不多
  • 记录前缀和,第一次出现时,存入map,记录下标
  • 第二次出现时,做差,中间的长度就是和为0的区间
class Solution {
public:int findMaxLength(vector<int>& nums) {int i, n = nums.size(), sum = 0, maxlen = 0;unordered_map<int,int> m;//sum, 第一次出现sum时的idxm[0] = -1;for(i = 0; i < n; ++i){if(nums[i])sum += 1;elsesum -= 1;if(!m.count(sum))m[sum] = i;elsemaxlen = max(maxlen, i-m[sum]);}return maxlen;}
};

344 ms 78.5 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server常用的系统存储过程应用实例(转)

摘要&#xff1a;Sql Server自带的系统存储过程有许多&#xff0c;但大部分我们是不常用的。我在实践中根据自己的体会&#xff0c;总结整理了一些比较常用的&#xff0c;加上一些实例介绍给大家。本期介绍&#xff1a; l sp_attach_db l sp_attach_single_fil…

angular 权限 php,PHP,Angular,HTACCESS-仅允许来自源域的请求

我完成了我的角度项目。在我的项目中&#xff0c;我向PHP文件发送带有数据的POST请求&#xff0c;然后将结果返回给Angular。现在我只允许来自源域的请求&#xff0c;并拒绝来自任何域的请求。我尝试使用:header("Access-Control-Allow-Origin: example.com");但不管…

LeetCode 516. 最长回文子序列(动态规划)

1. 题目 给定一个字符串s&#xff0c;找到其中最长的回文子序列。可以假设s的最大长度为1000。 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "bbbb"。示例 2: 输入: "cbbd" 输出: 2 一个可能的最长回文子序列为 "bb"…

点击图片,AJAX删除后台图片文件

点击页面上的图片&#xff0c;用jQuery的AJAX来删除后台真实的文件。包含了2个页面&#xff0c;一个是显示图片的页面&#xff0c;一个是传递文件名&#xff0c;然后删除真实图片的页面。具体的代码如下&#xff1a;ShowPics.htm:<!DOCTYPE html PUBLIC "-//W3C//DTD X…

granule size oracle,_ksmg_granule_size oracle内存分配粒度

_ksmg_granule_size oracle内存分配粒度_ksmg_granule_size:内存分配粒度大小oracle内存分配的最小单位&#xff0c;最终分配的内存数量都是这个参数的整数倍10g中这个参数的大小一般遵循如下原则&#xff1a;– sga_max_size < 1024M then _ksmg_granule_size 4M- sga_ma…

LeetCode 第 26 场双周赛(363/1971,前18.4%)

文章目录1. 比赛结果2. 题目1. LeetCode 5396. 连续字符 easy2. LeetCode 5397. 最简分数 medium3. LeetCode 5398. 统计二叉树中好节点的数目 medium4. LeetCode 5399. 数位成本和为目标值的最大数字 hard1. 比赛结果 做出来了 1、2、3 题&#xff0c;19分钟做出来3题&#x…

世界是个班,美国是班长,中国是团支书(太经典了!)

1。美国 班长&#xff0c;家里有钱&#xff0c;人长得也强壮&#xff0c;学习成绩很好但也爱打架&#xff0c;做事蛮横无理&#xff0c;班里同学一般都不敢顶撞他。和副班长关系不好。 2。俄罗斯 副班长&#xff0c;学习成绩好&#xff0c;全班最高大&#xff0c;上学期光和班长…

蛤蟆 Oracle,47.蛤蟆笔记go——go连接Oracle

47.蛤蟆笔记go——go连接Oracle在连接ORACLE数据库之前我们先来看下一个概念OCI。ociORACLE调用接口(Oracle Call Interface简称OCI)提供了一组可对ORACLE数据库进行存取的接口子例程(函数)&#xff0c;通过在第三代程序设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目…

LeetCode 1450. 在既定时间做作业的学生人数

1. 题目 给你两个整数数组 startTime&#xff08;开始时间&#xff09;和 endTime&#xff08;结束时间&#xff09;&#xff0c;并指定一个整数 queryTime 作为查询时间。 已知&#xff0c;第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。 请返回在查…

linux系统限制内存使用率,linux中限制CPU和内存占用率方法

在linux中CPU与内存占用率限制的方法有几种我这里整理常用的两种&#xff0c;希望文章对各位同学会有所帮助哦。查看cpu占用在命令行中输入 “top”即可启动 toptop 的全屏对话模式可分为3部分&#xff1a;系统信息栏、命令输入栏、进程列表栏。使用top查看系统负荷top命令可以…

实现Table多类不同数据类型的排序(顺反)

JS如下&#xff1a; var TableUtil new Object(); TableUtil.Convert function(sValue,sDataType){ switch(sDataType) { case "int": return parseInt(sValue); case "float": return parseFloat(sValue); …

LeetCode 1451. 重新排列句子中的单词(桶排序)

1. 题目 「句子」是一个用空格分隔单词的字符串。给你一个满足下述格式的句子 text : 句子的首字母大写text 中的每个单词都用单个空格分隔。 请你重新排列 text 中的单词&#xff0c;使所有单词按其长度的升序排列。 如果两个单词的长度相同&#xff0c;则保留其在原句子中…

Linux系统服务器停服,Linux系统服务启动和停止

systemd 是在Linux上运行服务的新方式。 systemd 有一个被替代的 sysvinit 。 systemd为Linux带来更快的启动时间&#xff0c;现在是管理Linux服务的标准方式。虽然稳定&#xff0c; systemd 仍在不断发展。systemd 作为init系统&#xff0c;用于管理Linux内核引导后需要更改状…

如何计算MP3总时长的问题(三)--对于变比特率MP3求总时长

3、变比特率MP3总时长求解 之前我们所讨论的都是对于一个固定比特率&#xff08;CBR&#xff09;的MP3进行求总时长&#xff0c;由于固定比特率的特殊性&#xff0c;很容易第一帧的帧头就能知道整个MP3的信息&#xff0c;但是对于变比特率&#xff08;VBR&#xff09;的MP3&…

LeetCode 1452. 收藏清单(std::includes判断子集)

1. 题目 给你一个数组 favoriteCompanies &#xff0c;其中 favoriteCompanies[i] 是第 i 名用户收藏的公司清单&#xff08;下标从 0 开始&#xff09;。 请找出不是其他任何人收藏的公司清单的子集的收藏清单&#xff0c;并返回该清单下标。下标需要按升序排列。 示例 1&a…

2011年值得注意的5个设计趋势

在过去的12个月里&#xff0c;我们已经看到Web设计领域发生了许多变化。 包括智能手机和平板电脑(如iPad)这些移动设备的日渐普及已经改变了用户对内容的访问和交互方式。还有&#xff0c;像HTML5、web字体和CSS这些新标准的正式通过意味着越来越多的用户可以使用网络上最新最强…

linux内核线程绑定到单个核,linux 将进程或者线程绑定到指定的cpu上

基本概念cpu亲和性(affinity)CPU的亲和性&#xff0c; 就是进程要在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器&#xff0c;也称为CPU关联性&#xff1b;再简单的点的描述就将指定的进程或线程绑定到相应的cpu上&#xff1b;在多核运行的机器上&#xff0c;每个CPU本…

LeetCode 1453. 圆形靶内的最大飞镖数量(几何题)

1. 题目 墙壁上挂着一个圆形的飞镖靶。现在请你蒙着眼睛向靶上投掷飞镖。 投掷到墙上的飞镖用二维平面上的点坐标数组表示。飞镖靶的半径为 r 。 请返回能够落在 任意 半径为 r 的圆形靶内或靶上的最大飞镖数。 示例 1&#xff1a; 输入&#xff1a;points [[-2,0],[2,0…

熟悉linux运行环境,实验一 熟悉Ubuntu环境

实验一熟悉Ubuntu环境【实验目的】1&#xff0e;了解Ubuntu系统基本操作方法&#xff0c;学会独立使用该系统。2&#xff0e;熟悉Ubuntu下如何编辑、编译和运行一个C语言程序。3&#xff0e;学会利用gcc、gdb编译、调试C程序。【预习内容】1&#xff0e;预习Ubuntu下各种应用程…

Pandas入门1(DataFrame+Series读写/Index+Select+Assign)

文章目录1. Creating, Reading and Writing1.1 DataFrame 数据框架1.2 Series 序列1.3 Reading 读取数据2. Indexing, Selecting, Assigning2.1 类python方式的访问2.2 Pandas特有的访问方式2.2.1 iloc 基于index访问2.2.2 loc 基于label标签访问2.3 set_index() 设置索引列2.4…