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

示例:

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

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

class Solution {
public:
    int kthSmallest(vector<vector<int>>& matrix, int k) {
        int left = matrix[0][0], right = matrix.back().back();
        while (left < right) {
            int mid = left + (right - left) / 2, cnt = 0;
            for (int i = 0; i < matrix.size(); ++i) {
                cnt += upper_bound(matrix[i].begin(), matrix[i].end(), mid) - matrix[i].begin();
            }
            if (cnt < k) left = mid + 1;
            else right = mid;
        }
        return left;
    }
};

378.有序矩阵中第K小的元素相关推荐

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

    378. 有序矩阵中第 K 小的元素 题目链接 思路分析 代码实现 题目链接 378. 有序矩阵中第 K 小的元素 思路分析 题目中又一次提到了有序,就能够猜想能够使用二分法 那么如果要使用二分的话, ...

  2. 【LeetCode】378. 有序矩阵中第 K 小的元素(js 实现)

    1.题目:378. 有序矩阵中第 K 小的元素 - 力扣(LeetCode) (leetcode-cn.com) 2.实现 (1)方法一: 直接将矩阵转换为一维数组,再将一维数组进行排序,最后取第k个 ...

  3. 力扣378.有序矩阵中第K小的元素

    378.有序矩阵中第K小的元素 思路: 利用优先级队列,改成最大堆,存入队列中,大于k抛出即可 代码实现 class Solution {public int kthSmallest(int[][] ...

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

    2020-05-25 1.题目描述 有序矩阵中第K小的元素 2.题解 1.优先队列 2.使用二分查找 class Solution { public:int kthSmallest(vector< ...

  5. Leetcode刷题100天—378. 有序矩阵中第 K 小的元素(优先队列)—day16

    前言: 作者:神的孩子在歌唱 大家好,我叫运智 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素. 请注意,它是 排序后 的第 k 小元素,而不是 ...

  6. LeetCode 378. 有序矩阵中第K小的元素(二分查找)

    文章目录 1. 题目 2. 解题 2.1 暴力法 2.2 二分查找 1. 题目 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素. 请注意,它是排序后的第k小元素,而 ...

  7. 174. 地下城游戏;剑指 Offer 40. 最小的k个数;378. 有序矩阵中第K小的元素;703. 数据流中的第K大元素

    一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主. 骑士的初始 ...

  8. 力扣 378. 有序矩阵中第 K 小的元素

    我的第一反应是,在这个矩阵中取任意一点(i,j),那么至少有 (i + 1) (j + 1)- 1* 个数比他小(即左上角的部分矩阵),然后再想想剩余的比它小的数必定是分布在这个小矩阵的下左两条边,由 ...

  9. Leetcode 378. 有序矩阵中第K小的元素 解题思路及C++实现

    解题思路: 使用一个最大堆遍历matrix中的数.保持最大堆中的元素数量不超过k,最后得到的堆顶元素值就是第k小的数. class Solution { public:int kthSmallest( ...

  10. leetcode 378. Kth Smallest Element in a Sorted Matrix | 378. 有序矩阵中第 K 小的元素(小根堆)

    题目 https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/ 题解 套了下小根堆模板. class Solutio ...

最新文章

  1. ajax传数组到php页面上,将ajax中的元素值和数组传递到PHP页面
  2. 使用TensorFlow进行鬼写
  3. 修改gitignore 后不起作用
  4. mysql远程访问错误
  5. linux中断--进程上下文和中断上下文
  6. 蓝桥杯官网试题 欧拉的鸡蛋
  7. c语言飞机订票系统作用,C语言飞机订票系统方案
  8. 无法安装visual studio code,snap vscode has install-snap change in process
  9. 痱子粉(滑石粉)消除升降车窗异响;牙膏妙用( 消除雨刷异响,除浅划痕与污迹)
  10. 基于网站API的爬虫
  11. Redis——好友关注、共同关注、Feed流推送
  12. 2017新加坡出差经历
  13. linux教程 课件,《Linux实用教程》PPT课件
  14. Detours: 在二进制代码上截获Win32函数调用
  15. java多线程 丢数据_多线程list.add()丢数据
  16. CentOS7环境ZooKeeper集群的安装
  17. 深入理解Lustre文件系统-第2篇 Portal RPC
  18. IoC 容器的两种实现
  19. Flash Player的版本
  20. python经典程序练习题7:绘制一个红色的五角星图案

热门文章

  1. BOM知识点全面总结(附实例、图解)
  2. 【转】详解vue的diff算法
  3. request.form 和 Request.QueryString 区别
  4. IntelliJ IDEA 2019.1 EAP5 发布,Maven 构建输出统一查看
  5. 数据分析 第三篇:数据特征分析(分布分析+帕累托分析)
  6. 关于Unity中DOTween插件的使用(专题一)
  7. SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理
  8. iOS通过ASIHTTPRequest提交JSON数据
  9. CCNA培训课总结笔记--静态路由实现负载均衡(四)
  10. 安装MySQL出现 Install/Remove of the Service Denied!