【LeetCode刷题-滑动窗口】--1695.删除子数组的最大得分

1695.删除子数组的最大得分

image-20231116174820798

注意:子数组为不同元素

方法:滑动窗口

使用变长滑动窗口寻找数组nums中的以每个下标作为结束下标的元素各不相同的最长子数组。用[start,end]表示滑动窗口,初始时start=end=0,将滑动窗口的右端点end向右移动,移动过程中维护滑动窗口的左端点start,对于每个end寻找元素各不相同的最大滑动窗口

判断滑动窗口中是否有重复元素,需要使用哈希集合存储滑动窗口中出现的元素,用sum表示滑动窗口中的元素和。对于每个右端点end,将右端点处的元素记为num = nums[end],执行如下操作:

  • 将sum的值增加为num
  • 如果哈希集合中有元素num,则滑动窗口[start,end]中有两个元素num,因此将sum的值减去nums[start],从哈希集中中移除元素nums[start],然后将start向右移动一位,重复该操作直到哈希集合中没有元素num
  • 当前滑动窗口[start,end]中的子数组为以end作为结束下标的元素各不相同的最长子数组,其元素和为sum,使用sum更新最大得分
class Solution {
    public int maximumUniqueSubarray(int[] nums) {
        Set<Integer> set = new HashSet<Integer>();
        int maxSum = 0,sum = 0,start = 0,end = 0,len = nums.length;
        while(end < len){
            int num = nums[end];
            sum += num;
            while(set.contains(num)){
                sum -= nums[start];
                set.remove(nums[start]);
                start++;
            }
            set.add(num);
            maxSum = Math.max(maxSum,sum);
            end++;
        }
        return maxSum;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开发者的第一台服务器 ECS云服务器低至99元:新老同享

“阿里云始终围绕‘稳定、安全、性能、成本、弹性’的目标不断创新&#xff0c;为客户创造业务价值。”10月31日&#xff0c;杭州云栖大会上&#xff0c;阿里云弹性计算计算产品线负责人张献涛表示&#xff0c;通过持续的产品和技术创新&#xff0c;阿里云发布了HPC优化实例等多…

行情分析——加密货币市场大盘走势(11.16)

大饼昨日突然回调诱多上涨到38000附近&#xff0c;现在又重新跌回到37500&#xff0c;现在仓位小的可以加仓入场&#xff0c;而已经有仓位的不要动即可。 空单策略&#xff1a;入场37500附近 止盈34000-32000 止损39000 以太今日可以入场空单2060附近即可 策略&#xff1a;入…

AWD比赛中的一些防护思路技巧

## 思路1&#xff1a; 1、改服务器密码 &#xff08;1&#xff09;linux&#xff1a;passwd &#xff08;2&#xff09;如果是root删除可登录用户&#xff1a;cat /etc/passwd | grep bash userdel -r 用户名 &#xff08;3&#xff09;mysql&#xff1a;update mysql.user set…

易点易动设备管理系统:提升企业设备备品备件的管理效率

在现代企业中&#xff0c;设备备品备件的管理是一个重要而繁琐的任务。良好的备件管理可以提高设备的可用性&#xff0c;减少停机时间&#xff0c;提高生产效率。然而&#xff0c;传统的备件管理方式存在许多问题&#xff0c;如信息不透明、库存过剩或不足、难以追踪等。为了解…

μC/OS-II---整理学习1

目录 系统功能系统结构图 μC/OS-II是用 C 语言&#xff08;绝大部分&#xff09;和汇编语言&#xff08;与处理器密切相关的代码&#xff09;编写的。 系统功能 实时内核&#xff1a;μC/OS-II—内核&#xff1a;任务调度&#xff08;oc_core.c&#xff09;任务管理&#xf…

92.Linux的僵死进程以及处理方法

目录 1.什么是僵死进程&#xff1f; 2.代码演示僵死进程 3.解决办法 1.什么是僵死进程&#xff1f; 僵死进程是指一个子进程在父进程之前结束&#xff0c;但父进程没有正确地等待&#xff08;使用 wait 或 waitpid 等系统调用&#xff09;来获取子进程的退出状态。当一个进…

群晖7.2版本套件安装CloudDriver2

CloudDrive是一个强大的多云盘管理工具&#xff0c;为用户提供包含云盘本地挂载的一站式的多云盘解决方案。挂载到本地后&#xff0c;可以像本地文件一样进行操作。 一、套件库添加矿神源 二、安装CloudDriver2 1、搜索安装 搜索框输入【clouddrive】&#xff0c;搜索到Clou…

μC/OS-II---进程间通信方式

目录 信号量&#xff08; Semaphores &#xff09;- 用于最基本的互斥、同步操作互斥信号量&#xff08;Mutual Exclusion Semaphores &#xff09;-专门用于互斥消息队列&#xff08; Message Queues &#xff09;- 用于消息通信消息邮箱&#xff08;Message Box&#xff09; …

还不知道怎么发成绩?

选择一个适合的发布平台先选择一个适合的软件平台&#xff0c;这里推荐使用小程序。微信已经成为学生们日常生活中必不可少的社交工具&#xff0c;通过微信小程序来进行成绩查询&#xff0c;可以让学生们更方便的获取信息。你可以在微信中搜索并选择合适的小程序&#xff0c;比…

安装node.js指定任意版本详解

Node.js是一种基于Chrome V8引擎的JavaScript运行时环境。它允许开发人员使用JavaScript编写服务器端和网络应用程序。与传统的JavaScript在浏览器中执行不同&#xff0c;Node.js使得JavaScript可以在服务器端运行。 Node.js具有以下特点&#xff1a; 1. 非阻塞式I/O&#xf…

微信加好友操作频繁了,怎么办?

近来&#xff0c;微信的风控是越来越严重&#xff0c;因为本身微信是作为一个社交软件&#xff0c;但流量大适合用来做私域营销。在日常使用微信中&#xff0c;我们也要了解下微信加好友的规则。 目前微信加人的规则是&#xff1a; 1、通过附近人功能加人上限15人/天&#xf…

京东数据挖掘(京东运营数据分析):2023年宠物行业数据分析报告

随着社会经济的发展&#xff0c;人均收入水平逐渐提高&#xff0c;使得宠物成为越来越多家庭的成员&#xff0c;宠物数量不断增长。伴随养宠人群的增多&#xff0c;宠物相关产业的发展也不断升温&#xff0c;宠物经济规模持续增长。 根据鲸参谋平台的数据显示&#xff0c;在宠物…

RocketMQ 分布式事务消息实战指南:确保数据一致性的关键设计

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

2023.11.16 hivesql高阶函数之json

目录 1.数据准备 2.操作 -- 方式1: 逐个(字段)处理, get_json_object UDF函数 最大弊端是一次只能解析提取一个字段 -- 方式2: 逐条处理. json_tuple 这是一个UDTF函数 可以一次解析提取多个字段 -- 方式3: 在建表时候, 直接处理json, row format SerDe 能处理Json的SerDe类…

申请国外博士后如何写好推荐信

在国外博士后申请过程中&#xff0c;推荐信是至关重要的一环。一封优秀的推荐信不仅能够突显申请者的学术实力和专业背景&#xff0c;更能够展示其在研究领域的潜力和个人素质。以下是知识人网小编整理的一些写好推荐信的建议&#xff0c;希望对申请者有所帮助。 1.选择合适的推…

gd32 USB HOST 接口

接口 CPU引脚 复用 DM PB14 USBHS_DM AF12 DP PB15 USBHS_DP AF12

提高APP安全性的必备加固手段——深度解析代码混淆技术

​ APP 加固方式 iOSAPP 加固是优化 APK 安全性的一种方法&#xff0c;常见的加固方式有混淆代码、加壳、数据加密、动态加载等。下面介绍一下 iOSAPP 加固的具体实现方式。 混淆代码&#xff1a; 使用 ProGuard 工具可以对代码进行混淆&#xff0c;使得反编译出来的代码很难…

【机器学习9】前馈神经网络

深度前馈网络是一类网络模型的统称&#xff0c;主要包括多层感知机、 自编码器、限制玻尔兹曼机&#xff0c; 以及卷积神经网络等。 1 激活函数 激活函数及对应导函数图其它Sigmoid 导数 在z很大或很小时都会趋近于0&#xff0c; 造成梯度消失的现象Tanh 其导数在z很大或很小…

德迅云安全和您聊聊关于DDOS高防ip的一些方面

德迅DDoS防护服务是以省骨干网的DDoS防护网络为基础&#xff0c;结合德迅自研的DDoS攻击检测和智能防护体系&#xff0c;向您提供可管理的DDoS防护服务&#xff0c;自动快速的缓解网络攻击对业务造成的延迟增加&#xff0c;访问受限&#xff0c;业务中断等影响&#xff0c;从而…

智能运维监控告警6大优势

随着云计算和互联网的高速发展&#xff0c;大量应用需要横跨不同网络终端&#xff0c;并广泛接入第三方服务(如支付、登录、导航等)&#xff0c;IT系统架构越来越复杂。 快速迭代的产品需求和良好的用户体验&#xff0c;需要IT运维管理者时刻保障核心业务稳定可用&#xff0c;…