news 2026/5/6 11:52:09

第 173 场双周赛Q2——3795. 不同元素和至少为 K 的最短子数组长度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第 173 场双周赛Q2——3795. 不同元素和至少为 K 的最短子数组长度

题目链接:3795. 不同元素和至少为 K 的最短子数组长度(中等)

算法原理:

解法:滑动窗口

146ms击败35.92%

时间复杂度O(N)

系统滑动窗口专题👇

一轮复习——C.滑动窗口模型总结

本题的滑动窗口模型为不定长-求长度-越长越合法/求最短/最小

①进窗口:用哈希表记录,保证相同值只加一次

②出窗口:总和>=k就持续出窗口

③更新:在出窗口时,也就是不断缩小范围时更新

Java代码:

class Solution { public int minLength(int[] nums, int k) { //滑动窗口 Map<Integer,Integer> hash=new HashMap<>(); int n=nums.length,sum=0,ret=0x3f3f3f3f; for(int left=0,right=0;right<n;right++){ //相同值只加一次 if(!hash.containsKey(nums[right])) sum+=nums[right]; //进窗口 hash.put(nums[right],hash.getOrDefault(nums[right],0)+1); //出窗口 while(sum>=k){ //更新:出窗口时不断缩小范围更新 if(sum>=k) ret=Math.min(ret,right-left+1); hash.put(nums[left],hash.get(nums[left])-1); if(hash.get(nums[left])==0){ sum-=nums[left]; hash.remove(nums[left]); } left++; } } return ret==0x3f3f3f3f?-1:ret; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 11:50:52

月度员工绩效考核管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

摘要 随着企业规模的不断扩大和人力资源管理的日益复杂&#xff0c;传统的绩效考核方式已经无法满足现代企业的需求。纸质化考核流程效率低下&#xff0c;数据统计和分析困难&#xff0c;难以实现公平、客观的绩效评估。为了提升企业管理的科学性和效率&#xff0c;开发一套高效…

作者头像 李华
网站建设 2026/5/3 8:39:05

零基础入门:Windows玩转Redis的5个简单步骤

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 生成一个面向新手的Redis Windows入门指南&#xff0c;包含&#xff1a;1.图文并茂的安装教程 2.第一个Redis命令示例 3.常见错误解决方法 4.基础配置修改指导 5.推荐学习路径。要…

作者头像 李华
网站建设 2026/5/1 3:56:44

OBS多路推流插件终极配置指南:从零搭建高性能直播系统

OBS多路推流插件终极配置指南&#xff1a;从零搭建高性能直播系统 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 故障诊断矩阵&#xff1a;四维问题定位系统 网络连通性诊断层 一键网…

作者头像 李华
网站建设 2026/5/3 13:45:46

JDK安装效率对比:传统3小时 vs AI 3分钟

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 生成JDK安装效率对比报告&#xff0c;要求&#xff1a;1.制作可视化流程图对比两种方式步骤差异2.统计常见错误处理耗时占比3.嵌入可交互的安装时间计算器&#xff08;根据网络速度…

作者头像 李华
网站建设 2026/5/1 2:37:20

AI如何帮你快速实现JAVA过滤器?快马平台实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请生成一个JAVA过滤器代码&#xff0c;功能是&#xff1a;对HTTP请求进行权限验证&#xff0c;检查请求头中是否包含有效的Authorization令牌。如果令牌有效则放行请求&#xff0c…

作者头像 李华
网站建设 2026/5/3 22:16:39

直播vs下载:TCP与UDP在真实场景中的选择

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个网络应用演示项目&#xff0c;包含&#xff1a;1) 基于TCP的文件下载服务器 2) 基于UDP的实时视频流服务器 3) 带宽占用监控界面 4) 延迟测试工具 5) 数据包丢失模拟器。要…

作者头像 李华