在做题中学习(61):连续数组

news2024/11/17 23:55:42

525. 连续数组 - 力扣(LeetCode)

思路:前缀和 + 哈希表

转化:将 0 ——> -1

转变为:找到和为0的最长子数组

细节:

1.哈希表存什么

前缀和  ,  长度

2.什么时候存入哈希表

先处理前一个,再将当前值存入哈希表

3.如果哈希表中已经有sum,还要存进去吗?

不用,因为算和为0长度时,sum越小,算的长度越长。

4.前缀和为0的情况,怎么处理?

第 i 个元素的前缀和正好是 sum ,那么前面子数组就是0的长度就是-1

hash[0] = -1

5.长度怎么算

和为0的子数组长度:i - j;

class Solution 
{
public:
    int findMaxLength(vector<int>& nums) 
    {
        //前缀和,长度
        unordered_map<int,int> hash;
        hash[0] = -1;
        int n = nums.size(),sum = 0,len = 0;
        for(int i = 0;i < n;i++)
        {
            if(nums[i] == 0)
                nums[i] = -1;
            sum += nums[i];
            if(hash.count(sum))
            //len算的就是子数组的长度
                len = max(len,i - hash[sum]);
            else
                hash[sum] = i; 
        }
        return len;
    }
};

注意:len是子数组的长度,哈希表里存sum的长度。

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

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

相关文章

【LeetCode】【4】寻找两个正序数组的中位数(2105字)

文章目录 [toc]题目描述样例输入输出与解释样例1样例2 提示Python实现二分查找划分数组 个人主页&#xff1a;丷从心 系列专栏&#xff1a;LeetCode 刷题指南&#xff1a;LeetCode刷题指南 题目描述 给定两个大小分别为m和n的正序&#xff08;从小到大&#xff09;数组nums1…

基于Pytorch框架的卷积神经网络MNIST手写数字识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 MNIST手写数字数据集是机器学习领域中的一个经典数据集&#xff0c;它包含了大量的手写数字图…

Pytorch深度学习实践笔记2

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;pytorch深度学习 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…

正则表达式(知识总结篇)

本篇文章主要是针对初学者&#xff0c;对正则表达式的理解、作用和应用 正则表达式&#x1f31f; 一、&#x1f349;正则表达式的概述二、&#x1f349;正则表达式的语法和使用三、 &#x1f349;正则表达式的常用操作符四、&#x1f349;re库主要功能函数 一、&#x1f349;正…

【设计模式】JAVA Design Patterns——Balking(止步模式)

&#x1f50d;目的 止步模式用于防止对象在不完整或不合适的状态下执行某些代码。 &#x1f50d;解释 真实世界例子 洗衣机中有一个开始按钮&#xff0c;用于启动衣物洗涤。当洗衣机处于非活动状态时&#xff0c;按钮将按预期工作&#xff0c;但是如果已经在洗涤&#xff0c;则…

从零到一:手把手教你将项目部署上线-环境准备

部署步骤 引言1.Java环境配置2.ngnix安装好书推荐 引言 将自己的项目从本地开发环境顺利部署上线&#xff0c;是每个开发者必经的里程碑。今天&#xff0c;我们就从零开始&#xff0c;一步一步教你如何将手中的项目部署到线上&#xff0c;让全世界见证你的创造力。 首先&#x…

3D 高斯泼溅(Gaussian Splatting)-3D重建的3DGS时代

3D重建自从NeRfs出现之后又热闹了一次&#xff0c;3D GS技术一时间燃变了整个三维重建和Slam领域&#xff0c;几个月不见&#xff0c;沧海桑田。 NeRF貌似已成为过去式&#xff0c;三维重建进入了3DGS时代&#xff0c;且3DGS在各方面比NeRF落地更快。3D 高斯泼溅&#xff08;S…

Payload SDK dji

开发硬件 感谢您的耐心等待&#xff0c;建议您可以考虑下树莓派4B或Jetson Nano开发板&#xff0c;看您需求选择&#xff0c;OSDK即将停止服务&#xff0c;我们建议您使用PSDK来进行开发&#xff0c;PSDK包含了OSDK的功能。Payload SDK 感谢您对大疆产品的支持&#xff01;祝…

DOS学习-目录与文件应用操作经典案例-type

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 1. 查看文本文件内容 2. 同时查看多个文本文件内容 3. 合并文…

获取日期区间的所有日期

借助moment.js 转换指定格式&#xff0c;首先安装npm install moment --save methods:{enumerateDaysBetweenDates(startDate, endDate) { // 假定你已经保证了startDate 小于endDate&#xff0c;且二者不相等let daysList [];let SDate this.$moment(startDate);let EDate …

CentOS7安装内网穿透实现远程推送镜像到本地Docker Registry

文章目录 前言1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址 前言 本文主要介绍如何部署Docker Registry 本地镜像仓库,简单几步结合cpolar内网穿透工具实现…

顶顶通实时质检系统-黑名单拦截功能配置流程

文章目录 前言联系我们配置流程一、黑名单导入二、白名单导入三、外部黑名单四、靓号规则五、创建拦截规则六、拦截条件七、功能配置 拦截记录与统计拦截记录拦截统计 前言 上篇文章讲解了顶顶通实时质检系统黑名单的功能介绍&#xff0c;本篇文章主要讲解顶顶通黑名单拦截功能…

C++入门:从C语言到C++的过渡(1)

目录 1.什么是C 2.C的标准库 3.命名空间 3.1为什么要存在命名空间 3.2命名空间的定义 3.3命名空间的使用 3.3.1域作用限定符 3.3.2using关键字引入某个成员 3.3.3using关键字引入命名空间名称 3.4命名空间的嵌套 3.5命名空间的合并 4.C中的输入与输出 1.什么是C C&am…

Ansible自动化运维中的file文件模块模块应用详解

作者主页&#xff1a;点击&#xff01; Ansible专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年5月21日15点21分 &#x1f4af;趣站推荐&#x1f4af; 前些天发现了一个巨牛的&#x1f916;人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xf…

jmeter线程组(下篇)

线程组 线程组作为JMeter测试计划的核心组件之一&#xff0c;对于模拟并发用户的行为至关重要。线程组元件是整个测试计划的入口&#xff0c;所有的取样器和控制器必须放置在线程组下。 可以将线程组视为一个虚拟用户池&#xff0c;其中每个线程可被理解为一个虚拟用户&#x…

记录一次IDEA升级版本导致Lombok注解失效问题

IDEA升级导致Lombok注解失效问题 环境 我本机项目原来的运行环境和软件版本&#xff1a; IDEA 2021JDK 1.8Maven 3.5.4springboot 2.2.6.RELEASEspring-cloud Hoxton.SR9 为了体验更好我就把IDEA版本从2021.2升级到了2024.1版本&#xff0c;反正现在是有最新版本我就一直在…

SpringBoot2.0.x旧版集成Swagger UI报错Unable to infer base url...解决办法

一、问题描述 1.1项目背景 SpringBoot2.0.9的旧版项目维护开发&#xff0c;集成Swagger-ui2.9.2无法访问的问题。不用想啊&#xff0c;这种老项目是各种过滤器拦截器的配置&#xff0c;访问不到&#xff0c;肯定是它们在作妖。懂得都懂啊&#xff0c;这里交给大家一个排错的办…

企业防泄密软件有哪些,哪个排名最好

机密数据的泄密对于企业而言&#xff0c;已成为最大的信息安全威胁之一。近年来企业面对的最大威胁来自于内部&#xff0c;以利益为出发点的互联网信息犯罪及案件&#xff0c;在世界各地不断传出&#xff0c;因此&#xff0c;信息保护与管控将逐渐成为企业信息安全重点部署项目…

解决arduino安装stm32duino开发板库时下载慢下载不了的问题

解决arduino安装stm32duino开发板库时下载慢下载不了的问题&#xff0c;安装其他开发板也可以使用类似的方法。 在利用arduino进行stm32开发的时候&#xff0c;需要安装对stm32开发板支持的库&#xff0c;但是正常情况下&#xff0c;由于网络问题&#xff0c;安装的时候容易出…

双边滤波去雾算法

目录 1. 简介 2. 步骤 3. 优点 4. 代码 5. 运行结果 1. 简介 本文介绍了双边滤波图像去雾算法&#xff0c;旨在消除雾霾对图像质量的影响&#xff0c;能够保留边缘信息并去除噪声&#xff0c;有效提高图像的清晰度和对比度。双边滤波&#xff08;Bilateral Filtering&…