当前位置: 首页 > news >正文

力扣滑动窗口

力扣算法题第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/

http://www.jsqmd.com/news/81909/

相关文章:

  • OI 日记
  • ELMduino终极指南:快速构建OBD-II车辆监控系统
  • Fiddly完整指南:5个步骤将Readme.md转化为精美HTML页面
  • Next AI Draw.io:智能图表革命,用自然语言重塑可视化创作
  • 人格障碍诊断系统毕业论文+PPT(附源代码+演示视频)
  • 2025年评价高的烷基多糖苷厂家最新实力排行 - 品牌宣传支持者
  • Typora代码块功能优化与问题解决方案
  • Zookeeper集群支持动态添加机器?面试必看!(轻松搞定)
  • 裂缝检测数据集大全:助力计算机视觉研究
  • 科技巨头的生态构建之路:技术底座、技术生态与应用生态的协同演进
  • 2025年黑龙江艺考生文化课正规机构推荐:实力机构有哪些? - myqiye
  • PyGCL图对比学习框架:从入门到实战的完整指南
  • ag-ui终极指南:构建下一代AI代理应用的完整教程
  • AI_NovelGenerator:智能写作终极指南,一键生成万字小说
  • 偏置电压对于 MCP6S22 单边放大检波的影响
  • 2025年智慧旅游景区智慧化服务商推荐,精选智慧旅游品牌供应 - 工业品牌热点
  • 2025年度六安玻璃贴膜企业推荐:实力强的玻璃贴膜品牌企业有 - 工业推荐榜
  • 19、对等网络:颠覆性技术的潜力与挑战
  • ComfyUI与翻译系统集成:支持多语言提示词输入
  • 2025年知名的大连个人搬家公司企业公信力榜 - 行业平台推荐
  • Simple Form性能优化实战指南:Rails应用表单响应速度提升方案
  • BeepBox:开启你的免费在线音乐创作之旅
  • Croner终极指南:零依赖JavaScript定时任务的完整解决方案
  • 47、深入探索Bash脚本与Linux启动流程
  • U-2-Net实战宝典:掌握显著对象检测的核心训练技巧
  • 基于Llama-Factory的旅游行程规划AI助手
  • 终极移动端滑动控件指南:5分钟快速掌握核心用法
  • 48、深入理解与解决 GRUB 引导问题及内核管理
  • 04-Python的输入与输出到JSON序列化,一篇搞定数据流转
  • 49、Linux系统内核管理与故障排查全解析