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

LeetCode 379 | 有序矩阵中第K小的元素

题目:
给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。
请注意,它是排序后的第 k 小元素,而不是第 k 个 不同 的元素。
你必须找到一个内存复杂度优于 O(n2) 的解决方案。

示例 1:

输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8
输出:13
解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素是 13

✨1. 如何尽可能快速地计数 矩阵中小于等于数值x的个数?
image
可以从 matrix[n - 1][0] 开始,移动到第一个大于 x 的位置 j,记录当前行的个数 cnt = j。
向上移动到 matrix[i][j],无需从头开始判断,j 不需要初始化。
✨2. 可以对数值 x 进行二分查找,得到 cnt ≥ k 的数值,即为答案。那么,左边界 L = matrix[0][0], 右边界 R = matrix[n - 1][n - 1]。
✨3. 当 cnt < k 时,数值mid一定不是答案,可以直接L = mid + 1;当 cnt ≥ k 时,cnt可能是第一个大于k的数,可能会是答案,所以右边界的转移代码为R = mid。最后输出的答案也是R。
✨4. 一般的mid计算代码为mid = (L + R) / 2,但是这里会出现出现负数的除法问题。

输入:matrix = [[-5,-4],[-5,-4]], k = 2
L = -5, R = -4, mid = -4

会无法跳出循环,应该改为mid = L + (R - L) / 2,此时mid = -5。

🔑代码:

int kthSmallest(vector<vector<int>>& matrix, int k) {int n = matrix.size(), l = matrix[0][0], r = matrix[n - 1][n - 1], mid;while(l < r){mid = l + (r - l) / 2;int i = n - 1, j = 0, cnt = 0;for(;i >= 0; i--){while(j < n && matrix[i][j] <= mid) j++;cnt += j;}if(cnt < k) l = mid + 1;else r = mid;}return l;}
http://www.jsqmd.com/news/481934/

相关文章:

  • 全球医疗器械展会代理地域适配指南:各区域优质服务商精准推荐
  • 告别“积木式”构建:RH Claw 实现 OpenClaw AIGC全模态能力一令直达
  • 打开网站显示Warning: json_decode () expects parameter 1 to be string, array given in错误怎么办|已解决
  • 香港启世集团宣布启动核聚变能源研究计划
  • WebVoyager:基于大型多模态模型构建端到端 Web 智能体
  • 问网站后台登录提示“账号或密码错误”,确认信息正确仍无法登录问题|已解决
  • 有什么找工作比较好的软件?2026实测推荐,行业TOP1太省心
  • 打开网站显示Fatal error: Maximum execution time of X seconds exceeded in错误怎么办|已解决
  • API接口管理系统助力企业破解数据孤岛难题
  • 打开网站显示执行SQL发生错误!错误:DISK I/O ERROR错误怎么办|已解决
  • 打开网站显示Cant connect to local MySQL server through socket错误怎么办|已解决
  • PowerShell 执行策略限制导致的 `npm` 命令无法运行的安全错误
  • 打开网站显示You have an error in your SQL syntax; check the manual near ... at line X错误怎么办|已解决
  • 超强AI智能抠图神器 Aiarty Image Matting 实操教程(0基础入门,发丝级抠图秒出效果)
  • Spring AI RAG 生产级实战:从 0 构建企业智能知识库系统
  • creeper
  • 网站如何实现留言内容自动发送到QQ邮箱
  • 网站给超链接默认添加rel="nofollow"标签
  • 服务器免费
  • docker save 远程 ssh 主机直接 load,不产生本地文件
  • 《有限与无限的游戏》导读:一本很薄、很深、也很容易读不懂的书
  • 卷筒组装配图与零件图(CAD)
  • 聚焦2026年2月!靠谱异宠医院排行大公开,狗狗体检/宠物皮肤科专家/宠物绝育/猫咪体检/异宠医院,异宠医生哪家靠谱推荐 - 品牌推荐师
  • 计算机毕业设计springboot基于uniapp的移动端超市小程序 基于SpringBoot与uni-app的跨平台智慧零售商城系统 SpringBoot后端驱动的移动端社区团购小程序开发
  • 点云数据可视化脚本
  • 计算机毕业设计springboot基于Vue.js的宠物服务系统的设计与实现 基于SpringBoot与Vue的宠物护理与领养综合服务平台 SpringBoot架构下的宠物服务一站式管理解决方案
  • 省下反复返工的时间!百考通AI自动生成结构完整、学科适配的开题框架
  • day113(3.15)——leetcode面试经典150
  • 〘 7 〙软考高项 | 第14章:项目沟通管理
  • 你的选题值得一个好开头——百考通AI让开题报告成为研究助力,而非负担