每日算法 - 有序矩阵中第k小的元素

LeetCode 有序矩阵中第K小的元素 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 说明: 你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。 思路分析: 请先翻阅 Le... 阅读详情

 


题目

给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。
请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。

 

示例:

matrix = [
   [ 1,  5,  9],
   [10, 11, 13],
   [12, 13, 15]
],
k = 8,

返回 13。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


解题思路

https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/solution/you-xu-ju-zhen-zhong-di-kxiao-de-yuan-su-by-leetco/

 

直接看二分查找

 


代码

class Solution {
    public int kthSmallest(int[][] matrix, int k) {
        int n = matrix.length;
        int left = matrix[0][0];
        int right = matrix[n - 1][n - 1];
        while (left < right) {
            int mid = left + ((right - left) >> 1);
            if (check(matrix, mid, k, n)) {
                right = mid;
            } else {
                left = mid + 1;
            }
        }
        return left;
    }

    public boolean check(int[][] matrix, int mid, int k, int n) {
        int i = n - 1;
        int j = 0;
        int num = 0;
        while (i >= 0 && j < n) {
            if (matrix[i][j] <= mid) {
                num += i + 1;
                j++;
            } else {
                i--;
            }
        }
        return num >= k;
    }
}

 

 


总结

378. 有序矩阵中第 K 小的元素 378. 有序矩阵中第 K 小的元素 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。 输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8 输出:13 解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素是 13 最小堆 由题目给出的性质可知,这个矩阵的每一行均为一个有序数组。问题即转化为从这 阅读详情

相关推荐

Gem5模拟器,详解官网教程Event-driven programming(五)

Gem5模拟器,详解官网教程Event-driven programming、时间调度、如何自定义SimObject

qq_46675545的博客 2040

有序矩阵中第K小的元素

给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 说明: 你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。 来源:力扣(LeetCode) 链接:http...

叶落忆痕的博客 409

5G NR 帧结构

本节主要介绍5G NR中的帧结构[38.211-4.3]。5G帧结构(Frame Structure)为时域结构。其设计比其4G LTE更为灵活,这种灵活性使5G能够根据应用需求(如增强移动宽带eMBB,超高可靠低时延通信URLLC)进行调整,同时支持差异化的应用场景,提高了5G的利用效率与响应能力。具体而言,5G帧结构是基于时隙和OFDM符号设计的,且5G网络能够根据服务需求动态调整各时隙持续时长。

夫子喵的博客 5286

(Leetcode) 有序矩阵中第K小的元素 - Python实现

题目:有序矩阵中第K小的元素 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素。示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]], k = 8, 返回 13。说明: 你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。 ...

weixin_42077402的博客 533

【Unity动画系统】详解Root Motion动画在Unity中的应用(一)

什么时候勾选Bake into pose,当不希望动画带动游戏对象旋转时。在旋转的动画中一般是不用勾选的,因为就需要用它来带动我们的角色对象旋转。但在比如前进、后退、待机等动画来说,我们就可以勾选这里,以避免因动画文件本身的瑕疵而给我们带来的旋转。loop match:代表了这个动画在角度上的吻合度。如果这个动画在播放中转角过大,那么就会显示红色,告诉我们如果勾选bake into pose,则会带来不好的效果。

weixin_60154963的博客 6805

STM32G474+Simulink+HIL硬件在环仿真

硬件:STM32G474RET6(官方的NUCLEO板)软件:STM32Cube_FW_G4 V1.6.1芯片包;KeilMATLAB 2023B(本文已成功)STM32嵌入式支持包。

qq_44701116的博客 1781

[算法]LeetCode每日一题--378. 有序矩阵中第K小的元素(Java)

第194场周赛 378. 有序矩阵中第K小的元素 20200702 难度:中等 题目描述 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 提示: 你可以假设 k 的值永远是有效的,1 ≤ k ≤ n2。 Solution 第k小,

shinezzz的博客 298

TMS320F28388D 学习笔记2 高精度PWM (HRPWM)

HRPWM的学习记录。

whyorwhnt的专栏 9534

每日一题算法:2020年7月2日 [有序矩阵中第K小的元素]kthSmallest

2020年7月2日 有序矩阵中第K小的元素 kthSmallest 默认格式: class Solution { public int kthSmallest(int[][] matrix, int k) { } } 解题思路: 维护一个数组记录每一行当前的位置。遍历这个数组,找到原数组中实际值的最小坐标,维护数组中的位置后移一位。 起始状态: 找一个最小值,地址+1 找下一个最小值,地址+1 找第三个最小值,地址+1 预计时间复杂度(K*N)空间复杂度(N) 这么做有一个问题

I12XXXXXLbull的博客 246

图像去模糊(二)——Richardson–Lucy算法

Richardson Lucy Algorithm(Richardson-Lucy算法详解及效果实例)

xueruhongchen的博客 3万+

使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分

American fuzzy lop 是一款面向安全的模糊测试器,它采用一种新型的编译时插桩和遗传算法,可以自动发现干净、有趣的测试用例,从而触发目标二进制文件中新的内部状态。这显著提高了模糊测试代码的功能覆盖率。AFL 的地址是它已经有一段时间没有更新了。虽然 AFL 仍然运行良好,但有一个新项目 AFL++,它是 AFL 的一个分支,包含许多改进和新功能。AFL++ 的地址是,其源代码位于。在本文中,我们将研究如何使用 AFL++ 对 IoT 二进制文件进行模糊测试。

技术超强的网络安全平台 1088

LeetCode每日一题7月记录

LeetCode每日一题7月记录7.1最长重复子数组 7.1最长重复子数组 原题地址. A[i:]和B[j:]的最长重复长度为A[i+1:]和B[j+1:]最长长度加1(如果A[i]==B[j]),所以可以用动态规划思想解决。 class Solution: def findLength(self, A: List[int], B: List[int]) -> int: n = len(A) m = len(B) dp = [[0] * (m+1

屏幕里的日与夜 1115

STM32F103C8T6驱动DHT11温湿度传感器程序

本程序基于 STM32F103C8T6 微控制器,通过 GPIO 模拟单总线通信时序实现对 DHT11 温湿度传感器的数据采集,主机采用拉低数据线的方式触发传感器启动,并通过检测高电平持续时间区分逻辑“0”和“1”,依次读取湿度和温度的整数数据及校验位,经过校验后将有效结果存入缓存数组,实现对环境温湿度的周期性测量与处理。

加斯顿工程师的博客 201

leetcode.杂

参考快慢指针 class Solution { public: int findDuplicate(vector<int>& nums) { int fast = 0, slow = 0; while (true) { fast = nums[nums[fast]]; slow = nums[slow]; if (fast == slow) ...

John的博客 222

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【LeetCode】每日一题(十九)378. 有序矩阵中第K小的元素 二分查找/大根堆

378. 有序矩阵中第K小的元素 20200702 难度:中等 题目描述 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 提示: 你可以假设 k 的值永远是有效的,1 ≤ k ≤ n2。 Solution 第k小,大根堆。但这种解

Evelyn的博客 303

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LeetCode每日一题:有序矩阵中第K小的元素

题目: 给定一个n x n矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 提示: 你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n...

Lin_Willen的博客 277

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

求n个数中第k大的数_yiduobo的每日leetcode 378.有序矩阵中第K小的元素

祖传的手艺不想丢了,所以按顺序写一个leetcode的题解。计划每日两题,争取不卡题吧378.有序矩阵中第K小的元素https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/这一题与之前某一题有些类似(找不到哪一题了),都是对于matrix[x][y]而言,1、以matrix[0][0]为左上角,matrix[...

weixin_39952800的博客 261

力扣每日一练378. 有序矩阵中第K小的元素

给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 提示: 你可以假设 k 的值永远是有效的,1 ≤ k ≤ n2 。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/kth-smallest-eleme

yangzijiangtou 232

【LeetCode-每日一题】-378. 有序矩阵中第K小的元素

1. 题目描述 2. 题目分析 这个题目类似于【剑指offer】-二维数组的查找-01/67 在此题的基础上进行一些扩展,题目要求我们找到矩阵中第K小的元素,也就是在1~15的范围中,找到第K小的数字。 我们对1~15进行二分,用mid来判断当前矩阵中小于等于mid的的有多少(count),如果count小于K的话,也就是在证明当前的元素过于小,所以,需要left = mid + 1;如果count大于等于K的话,也就是证明当前的元素过于大或者正好,所以,需要right = mid。 这里比较困惑的一点

爱敲代码的小黄 433

leetcode 378.有序矩阵中第K小的元素

原题 378.有序矩阵中第K小的元素 2020年7月2日 每日一题 题解 方法一 基本思路就是把矩阵中的所有元素都放进一个数组里面或者一个ArrayList里面,之后按照升序排序,再取出编号为k-1的那个数。 本思路java代码示例: /* @v7fgg 执行用时:25 ms, 在所有 Java 提交中击败了21.18%的用户 内存消耗:44.5 MB, 在所有 Java 提交中击败了15.38%的用户 2020年7月2日 7:36 */ class Solution { public int k

zhuruihe2014的博客 276

378. 有序矩阵中第K小的元素 k路归并+二分法

378. 有序矩阵中第K小的元素 难度:中等 2020/7/2每日一题打卡√ 题目描述 解题思路 1、直接用优先队列 简单直接无脑 /* * 378. 有序矩阵中第K小的元素 * 2020/7/2 类似于合并k个有序列表 */ public int kthSmallest(int[][] matrix, int k) { if(k == 1) return matrix[0][0]; int n = ma

hh155715的博客 317

leetcode【每日一题】378. 有序矩阵中第K小的元素 Java

题干 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 提示: 你可以假设 k 的值永远是有效的,1 ≤ k ≤ n2 。 二分法 给定一个矩阵里的数matrix[i][j],比它小的一定在左上方。 于是从矩阵左下角开始二分, 它的上边都

qq_43491066的博客 186

【每日一题】LeetCode. 378. 有序矩阵中第K小的元素

每日一题,防止痴呆 = = 一、题目大意 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix 二、题目思路以及AC代码 思路 这题一开始想到的是二分,因为很明显题目已经说了,行列都是有序的,但因为没想好要怎么二分,所以.

Johnson的博客 322

每日一题(2020-07-02)378. 有序矩阵中第K小的元素

[378. 有序矩阵中第K小的元素] 难度 中等 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 提示: 你可以假设 k 的值永远是有效的,1 ≤ k ≤ n2。 来源:力扣(LeetCode) 链接:https://leetcode-

答案在路上,自由在风里 179

LeetCode 378. 有序矩阵中第K小的元素(Kth Smallest Element in a Sorted Matrix) 13

378. 有序矩阵中第K小的元素 378. Kth Smallest Element in a Sorted Matrix 题目描述 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个元素。 每日一算法2019/5/16Day 13LeetCode378. Kth Smallest Element in a...

weixin_30314631的博客 112
上一篇: Spring - IoC
下一篇: Spring - AoP
Longtermevolution
博客等级 码龄9年 113粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值