【前缀合】Leetcode 连续数组

题目解析

525. 连续数组

在这里插入图片描述

寻找一个子数组,这个子数组中包含相同数目的0和1,但是这个子数组需要最长的


算法讲解

在这里插入图片描述
只需在[0,i]寻找一段区间使得这一段区间的和也等于sum即可

细节问题:1. 这里的哈希表的value存的是下标,因为需要找到最长的子数组的长度 2. 遇到重复的<sum ,i>,不用将当前的位置和sum更换进Hash,因为在此时的[0,i]区间里已经寻找到了一段[0,j]区间的和也等于sum,所以左边的长度越小,就能找到结果

class Solution {
public:int findMaxLength(vector<int>& nums) {//将vector中的0 换成 -1//这道题将转化为: 在数组中找出最长子数组,使最长子数组中所有元素和等于0int sum = 0;int ret = 0;unordered_map<int,int>Hash;Hash[0] = -1;for(int i = 0; i < nums.size(); i++){sum += nums[i] == 0 ? -1 : 1;if(Hash.count(sum)){ret = max(ret, i - Hash[sum]);}else Hash[sum] = i;}return ret;}
};

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

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

相关文章

大米自动化生产线设备:现代粮食加工的核心力量

随着科技的不断进步和粮食加工行业的快速发展&#xff0c;大米自动化生产线设备在现代粮食加工中的地位愈发重要。这些设备不仅大大提高了生产效率&#xff0c;还保证了产品的质量和安全&#xff0c;成为了现代粮食加工行业不可或缺的核心力量。 一、自动化生产线设备助力效率提…

大数据实训进行时:数据标注项目

数据标注项目 培训目的 让同学们先熟悉理论知识&#xff0c;如&#xff1a;识别障碍物是否满足拉框的要求&#xff0c;如何进行拉框&#xff1b;熟悉标注操作&#xff0c;培养出能够进入正式项目的人员 培训地点 理论&#xff1a;学术报告厅、阶梯教室 实操&#xff1a;1实…

字符串函数的模拟实现(除strlen外,之前写过一篇专门的strlen)

文章目录 概要strcpy的模拟实现strcmp的模拟实现strcat的模拟实现小结 概要 字符串函数需要包含头文件<string.h> 为了更加了解字符串函数的原理&#xff0c;这里我们实现一些字符串函数&#xff0c;例如strcpy,strcmp,strcat; 要模拟实现字符串函数的功能&#xff0c;首…

QT drawPixmap和drawImage处理图片模糊问题

drawPixmap和drawImage显示图片时&#xff0c;如果图片存在缩放时&#xff0c;会出现模糊现象&#xff0c;例如将一个100x100 的图片显示到30x30的区域&#xff0c;这个时候就会出现模糊。如下&#xff1a; 实际图片&#xff1a; 这个问题就是大图显示成小图造成的像素失真。 当…

机器学习—数据集(二)

1可用数据集 公司内部 eg:百度 数据接口 花钱 数据集 学习阶段可用的数据集&#xff1a; sklearn:数据量小&#xff0c;方便学习kaggle&#xff1a;80万科学数据&#xff0c;真实数据&#xff0c;数据量大UCI&#xff1a;收录了360个数据集&#xff0c;覆盖科学、生活、经济等…

基于springboot+vue的汽车租赁管理系统

背景介绍: 网络发展的越来越迅速&#xff0c;它深刻的影响着每一个人生活的各个方面。每一种新型事务的兴起都是为了使人们的生活更加方便。汽车租赁管理系统是一种低成本、更加高效的电子商务方式&#xff0c;它已慢慢的成为一种全新的管理模式。人们不再满足于在互联网上浏览…

不会搭建ERP帮助中心的看过来,这篇文教会你

企业资源规划&#xff08;Enterprise Resource Planning, ERP&#xff09;系统是支撑公司核心业务的大脑。但你知道吗&#xff0c;没有一个好用、易懂的帮助中心&#xff0c;就像给这个大脑裹上了层层蚕丝&#xff0c;难以发挥它的最大潜能。那么&#xff0c;怎样才能搭建一个优…

深度学习相关知识

目录 一.环境安装 1.cuda/cudnn安装&#xff1a; 2.Pytorch&#xff0c;torchvision安装 3. TensorRT安装C版本&#xff1a; 4.onnxRuntime安装&#xff1a; 二.基础知识 1.Onnx、onnxTime、wts和TensorRT 2. 模型部署 3. 深度学习简介 4. Loss函数 5. 激活函数 一.环…

杰发科技AC7840——CAN通信简介(4)_过滤器设置

0. 简介 注意&#xff1a;过滤器最高三位用不到&#xff0c;因此最高位随意设置不影响过滤器。 1. 代码分析 注意设置过滤器数量 解释的有点看不懂 详细解释...也看不大懂 Mask的第0位是0&#xff0c;其他位都是1(就是F?)&#xff0c;那就指定了接收值就是这个数&#xff0c;…

【cmake安装】研发环境搭建之cmake安装

背景 因为项目需求&#xff0c;需要家里的Win10 PC安装Ubuntu 20.04虚拟机并搭建编译环境&#xff0c;需要安装cmake编译环境 直接命令安装即可 sudo apt install cmake安装成功后&#xff1a; 3.16版本暂时也够用了

SVM向量支持机

1.通俗理解 svm&#xff1a;support vector machine目标&#xff1a;利用超平面将两类数据分割开来&#xff0c;这个超平面就是我们要设计的对象 如何设计&#xff1f;我们设计之后会有间隔&#xff0c;间隔越大分类效果就越好&#xff1b;距离决策边界最近的点我们成为支持向…

【嵌入式基础知识学习】AD/DA—数模/模数转换

AD/DA—数模/模数转换概念 数字电路只能处理二进制数字信号&#xff0c;而声音、温度、速度和光线等都是模拟量&#xff0c;利用相应的传感器&#xff08;如声音用话筒&#xff09;可以将它们转换成模拟信号&#xff0c;然后由A/D转换器将它们转换成二进制数字信号&#xff0c…