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

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; } };
http://www.jsqmd.com/news/216375/

相关文章:

  • 全网最全robotframework自动化测试环境搭建
  • 服务器被攻击后如何快速恢复?数据备份 + 应急响应手册
  • 必学!21种智能体设计模式详解,打造高效AI系统的完整工具箱(收藏版)
  • Z-Image-Turbo二次开发实战:基于科哥构建版的云端环境一键配置指南
  • 一张图理清网络安全知识体系:零基础快速上手的核心概念与框架
  • leetcode 863. All Nodes Distance K in Binary Tree 二叉树中所有距离为 K 的结点
  • 避开CUDA地狱:阿里云镜像一键部署图像生成模型的终极方案
  • 基于ensp模拟器的ipv6下一代校园网搭建与实现(源码+万字报告+讲解)(支持资料、图片参考_相关定制)
  • 网络安全从入门到精通:体系化梳理核心基础与技术原理脉络
  • 周末项目:用云端GPU和预置镜像搭建个人专属的Z-Image-Turbo艺术工坊
  • 产业落地篇:六大能力维度在主要行业的深度应用图谱
  • VisionPro案例之物料宽度测量
  • Z-Image-Turbo终极指南:从快速入门到高级调参技巧
  • “卷王”诞生:2025年新晋验证码破解平台性能实测
  • 【表盘识别】形态学指针式压力表识别【含GUI Matlab源码 14867期】
  • 企业级应用落地实践:M2FP集成至安防系统,实现异常行为检测
  • 计算中线到圆心的距离(判定印刷圆是否印刷偏移)-CreateSegmentAvgSegsTool
  • 网络安全核心知识体系:从入门到精通的技能树构建指南
  • 组织变革篇:构建适应AI搜索时代的企业GEO能力体系
  • B6地700W水平轴风机风轮翼型设计及主风向确定(源码+万字报告+讲解)(支持资料、图片参考_相关定制)
  • 软件测试要学习的基础知识——白盒测试
  • 【车牌识别】多雾环境停车计费系统【含GUI Matlab源码 14868期】
  • Z-Image-Turbo中文提示词优化:快速搭建实验环境
  • 教育创新篇:构建面向AI搜索时代的GEO人才培养新体系
  • 基于深度学习的豆瓣电影推荐系统设计与分析(源码+万字报告+讲解)(支持资料、图片参考_相关定制)
  • 2026年GEO服务商深度探析:AI时代品牌“算法战”的突围路径
  • Fireblocks 斥资 1.3 亿美元收购 TRES,将打造首个「数字资产操作系统」?
  • AI绘画商业应用指南:如何用预装Z-Image-Turbo的云端GPU快速产出商用素材
  • 治理升级篇:AI搜索时代GEO应用的伦理、合规与敏捷治理框架
  • 授权单位实战+专属应急队,湖南省网安基地如何用真实项目与应急响应锻造安全精英