news 2026/4/1 14:06:44

力扣滑动窗口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣滑动窗口

力扣算法题第2461题:
长度为K子数组中的最大和
给你一个整数数组 nums 和一个整数 k 。请你从 nums 中满足下述条件的全部子数组中找出最大子数组和:
子数组的长度是 k,且
子数组中的所有元素 各不相同 。
返回满足题面要求的最大子数组和。如果不存在子数组满足这些条件,返回 0 。
子数组 是数组中一段连续非空的元素序列

思路(java)(滑动窗口):
先创建一个哈希表,用来保存每个值出现的次数,然后for循环,定义left来记录长度为K的子数组的最小下标值(刚开始会小于0),循环到left>=0之后,进行滑动窗口,先判断哈希表的长度是否等于K,如果不等于就说明有重复数字,跳过这一条循环,如果哈希表的长度等于K,先取之前的值和现在的值的最大值,再对最左边的元素进行离开窗口操作,即若哈希表的值为1,去除这个键,否则让其值减一.
力扣参考答案:
class Solution {
public long maximumSubarraySum(int[] nums, int k) {
long ans = 0;
long s = 0;
Map<Integer, Integer> cnt = new HashMap<>();

for (int i = 0; i < nums.length; i++) {
// 1. 进入窗口
s += nums[i];
cnt.merge(nums[i], 1, Integer::sum); // cnt[nums[i]]++

int left = i - k + 1;
if (left < 0) { // 窗口大小不足 k
continue;
}

// 2. 更新答案
if (cnt.size() == k) {
ans = Math.max(ans, s);
}

// 3. 离开窗口
int out = nums[left];
s -= out;
int c = cnt.get(out);
if (c > 1) {
cnt.put(out, c - 1);
} else {
cnt.remove(out);
}
}

return ans;
}
}
链接:https://leetcode.cn/problems/maximum-sum-of-distinct-subarrays-with-length-k/solutions/1951940/hua-dong-chuang-kou-by-endlesscheng-m0gm/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/26 9:55:53

BUPT网络安全之入侵检测实验(实验五)

实验目的 理解入侵检测系统(IDS)的工作原理及在网络安全中的作用。 掌握 Snort IDS 在 Linux 环境下的安装与环境配置。 学会编写 Snort 检测规则(Rules)。 能够利用 Snort 检测 DoS 攻击、端口扫描(Nmap)及远程连接(SSH)行为。 实验环境 本实验采用两台虚拟机在同一…

作者头像 李华
网站建设 2026/3/25 6:12:23

Redis持久化策略详解

Redis提供两种持久化策略&#xff1a;RDB和AOF。RDB通过定时生成数据快照实现&#xff0c;适合快速恢复但可能丢失部分数据&#xff1b;AOF记录所有写操作命令&#xff0c;数据完整性更高但文件较大。此外&#xff0c;Redis支持混合持久化模式&#xff08;AOFRDB&#xff09;&a…

作者头像 李华
网站建设 2026/3/31 2:36:52

基于VUE的网红食品测评系统[VUE]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着社交媒体的发展&#xff0c;网红食品市场迅速崛起&#xff0c;消费者对网红食品的信息需求日益增长。本文设计并实现了一个基于VUE的网红食品测评系统&#xff0c;该系统涵盖系统用户管理、食品分类管理、测评信息管理、用户反馈管理以及数据统计等功能。通…

作者头像 李华
网站建设 2026/3/31 22:42:53

payload-dumper-win64:Windows平台上提取Android固件的终极指南

payload-dumper-win64&#xff1a;Windows平台上提取Android固件的终极指南 【免费下载链接】payload-dumper-win64下载仓库 本仓库提供了一个名为 payload-dumper-win64 的资源文件下载。该文件是一个用于Windows 64位系统的工具&#xff0c;主要用于处理Android设备的固件文件…

作者头像 李华
网站建设 2026/3/29 3:58:27

朋克风格NFT数字藏品源码二开视频藏品展示带uniapp

源码介绍&#xff1a;搭建了下&#xff0c;各页面均可正常打开&#xff0c;接口啥的未测试。并且补了一份详细的图文安装教程以下为搬运来的源码介绍&#xff1a;开发语言&#xff1a;前端uniapp&#xff0c;后端php 数据库Mysql&#xff0c;源码全开源 对接易支付接口 主要功能…

作者头像 李华