C++ | Leetcode C++题解之第378题有序矩阵中第K小的元素

题目:

题解:

cpp 复制代码
class Solution {
public:
    bool check(vector<vector<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;
    }

    int kthSmallest(vector<vector<int>>& matrix, int k) {
        int n = matrix.size();
        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;
    }
};
相关推荐
2401_8612775512 分钟前
func(int* num)的实现是*num=2或者int a=3,num=&a都可以吗
c语言·c++
繁华似锦respect14 分钟前
lambda表达式中的循环引用问题详解
java·开发语言·c++·单例模式·设计模式·哈希算法·散列表
我要升天!21 分钟前
QT -- 网络编程
c语言·开发语言·网络·c++·qt
闻缺陷则喜何志丹26 分钟前
【计算几何 矢量】2280. 表示一个折线图的最少线段数|1681
c++·数学·计算几何·矢量
Unlyrical27 分钟前
为什么moduo库要进行线程检查
linux·服务器·开发语言·c++·unix·muduo
GIS阵地27 分钟前
Qt实现简易仪表盘
开发语言·c++·qt·pyqt·qgis·qt5·地理信息系统
崇山峻岭之间34 分钟前
C++ Prime Plus 学习笔记028
c++·笔记·学习
阿猿收手吧!36 分钟前
【C++】cpp虚函数和纯虚函数的声明和定义
开发语言·c++
小武~1 小时前
Leetcode 每日一题C 语言版 -- 234 basic calculator
linux·c语言·leetcode
小白程序员成长日记1 小时前
2025.12.02 力扣每日一题
数据结构·算法·leetcode