首页 > 试题广场 >

有序矩阵中第K小的元素

[编程题]有序矩阵中第K小的元素
  • 热度指数:5192 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。
请注意,它是排序后的第k小元素,而不是第k个元素。

示例:

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

返回 13。
说明: 
你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。

输入描述:
第一行为k的值和矩阵的n的值

后续为n*n矩阵的数字,以空格分割


输出描述:
矩阵中第k小的元素
示例1

输入

8 3
1 5 9
10 11 13
12 13 15

输出

13
头像 牛客题解官
发表于 2020-06-05 15:38:26
精华题解 题目难度:三星 考察点:二分 方法1:暴力、排序 1.分析: 其实这个题目我们完全可以以一种特别暴力的做法来做,就是直接输入n^2个数,然后将这n^2个数排序,输出第k个数就可以了,虽然也能过题,但是这样就不能理解这个题真正的做法了,所以这个方法仅仅适合笔试的时候 展开全文
头像 bao_hu_yuan_zhang
发表于 2024-03-02 11:00:25
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int i=0; int j=0; int k=0 展开全文
头像 豆豆瓣
发表于 2020-05-15 21:18:48
题目难度:三星 考察点:二分 方法1:暴力、排序 1.分析: 其实这个题目我们完全可以以一种特别暴力的做法来做,就是直接输入n^2个数,然后将这n^2个数排序,输出第k个数就可以了,虽然也能过题,但是这样就不能理解这个题真正的做法了,所以这个方法仅仅适合笔试的时候 展开全文