news 2026/2/6 13:35:58

leetcode 困难题 862. Shortest Subarray with Sum at Least K 和至少为 K 的最短子数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 困难题 862. Shortest Subarray with Sum at Least K 和至少为 K 的最短子数组

Problem: 862. Shortest Subarray with Sum at Least K 和至少为 K 的最短子数组

解题过程

先求出前缀和,然后两个优先队列,一个大顶堆,一个小顶堆,然后遍历整个前缀和数组,若索引错误则pop小堆while(bigger.top().second < smaller.top().second),若差>=k,则不停pop小堆,然后计算最小值,并判断是否满足条件if(bigger.top().second > smaller.top().second && bigger.top().first - smaller.top().first >= k)

Code

using pr = pair<long long, int>; class Solution { public: int shortestSubarray(vector<int>& nums, int k) { vector<long long> prefixsum = {0}; long long s = 0, n = nums.size(); for(int i = 0; i < n; i++) { s += nums[i]; prefixsum.push_back(s); if(nums[i] >= k) { return 1; } } priority_queue<pr, vector<pr>, greater<pr>> smaller; priority_queue<pr, vector<pr>, less<pr>> bigger; int mi = INT_MAX; for(int i = 0; i <= n; i++) { smaller.push({prefixsum[i], i}); bigger.push({prefixsum[i], i}); while(bigger.top().second < smaller.top().second) { bigger.pop(); } if(bigger.top().first - smaller.top().first >= k) { while(!smaller.empty() ) { if(bigger.top().second > smaller.top().second && bigger.top().first - smaller.top().first >= k) { mi = min(mi, bigger.top().second - smaller.top().second); } else { break; } smaller.pop(); } } } return mi==INT_MAX? -1 :mi; // for(int len = 2; len <= n; len++) { // for(int i = len; i <= n; i++) { // if(prefixsum[i] - prefixsum[i - len] >= k) { // return len; // } // } // } // return -1; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 12:32:14

教育创新篇:构建面向AI搜索时代的GEO人才培养新体系

引言&#xff1a;教育转型的紧迫性——当传统课程遭遇技术革命随着地理空间智能与AI搜索技术的深度融合&#xff0c;传统的地理信息科学&#xff08;GIS&#xff09;教育体系正面临着前所未有的挑战。据行业调查显示&#xff0c;超过60%的GIS专业毕业生在就业后需要额外投入6-1…

作者头像 李华
网站建设 2026/2/3 6:15:27

论文降重工具该如何选择?针对知网AIGC检测高AI率的终极指南

"## 在高校写论文的过程中&#xff0c;面对知网及其他AIGC检测平台对论文AI率的严格把控&#xff0c;许多同学感受到论文降重的巨大压力。本文基于真实体验分享&#xff0c;详细介绍论文降AI率的难题与解决方案&#xff0c;重点评测了两款优质降AI工具——【嘎嘎降AI】和…

作者头像 李华
网站建设 2026/2/4 13:59:39

网络安全从入门到精通:体系化梳理核心基础与技术原理脉络

什么是网络安全 采取必要措施&#xff0c;来防范对网络的攻击&#xff0c;侵入&#xff0c;干扰&#xff0c;破坏和非法使用&#xff0c;以及防范一些意外事故&#xff0c;使得网络处于稳定可靠运行的状态&#xff0c;保障网络数据的完整性、保密性、可用性的能力(CIA)。 举例…

作者头像 李华
网站建设 2026/2/4 17:31:55

网络安全核心知识体系:从入门到精通的技能树构建指南

一、前言 提到网络安全&#xff0c;一般人们将它看作是信息安全的一个分支&#xff0c;信息安全是更加广义的一个概念:防止对知识、事实、数据或能力非授权使用、误用、篡改或拒绝使用所采取的措施. 网络安全重磅福利&#xff1a;入门&进阶全套282G学习资源包免费分享&am…

作者头像 李华
网站建设 2026/2/4 4:23:44

基于深度学习的豆瓣电影推荐系统设计与分析(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

基于深度学习的豆瓣电影推荐系统设计与分析 摘要 随着互联网信息技术的快速发展&#xff0c;人们越来越倾向于在线观看电影&#xff0c;而电影产业经过多年的发展&#xff0c;已经积累了海量的影片资源。这种现象导致了电影信息过载&#xff0c;使得用户在选择电影时面临困难。…

作者头像 李华
网站建设 2026/2/1 15:21:28

网络安全工程师和网络工程师的区别!

网络安全工程师和网络工程师&#xff0c;从名字上来看两者都与网络相关&#xff0c;同属于IT职业&#xff0c;那么网络安全工程师和网络工程师的区别是什么?我们来看看吧。网络安全工程师和网络工程师的区别网络安全工程师和网络工程师是不同的职业&#xff0c;虽然两个职业都…

作者头像 李华