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;
    }
};
相关推荐
不知所云,4 分钟前
5. SDL3 库项目引入
c++·sdl3
吃着火锅x唱着歌7 分钟前
LeetCode 2874.有序三元组中的最大值II
数据结构·算法·leetcode
C++ 老炮儿的技术栈12 分钟前
用密码学安全随机数生成256位密钥
c语言·开发语言·c++·windows·安全·密码学·visual studio
nianniannnn1 小时前
Eigen 矩阵操作笔记
c++·笔记·线性代数·矩阵
adfass1 小时前
桌面挂件时钟/多功能时钟C++
开发语言·c++·算法
全栈视界师1 小时前
《机器人实践开发②:Foxglove 嵌入式移植 + CMake 集成》
c++·机器人·数据可视化
繁华似锦respect1 小时前
Linux-内核核心组成部分
linux·c++
2401_893326622 小时前
力扣133.克隆图
算法·leetcode·职场和发展
不知所云,2 小时前
2.windows c/c++ 编译器安装, mingw和clang
c语言·c++·windows·mingw·clang·c编译器