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;
    }
};
相关推荐
t***5447 小时前
如何在现代C++中更有效地应用这些模式
java·开发语言·c++
_深海凉_7 小时前
LeetCode热题100-最小栈
java·数据结构·leetcode
不知名的忻7 小时前
Morris遍历(力扣第99题)
java·算法·leetcode·morris遍历
itman3017 小时前
C语言、C++与C#深度研究:从底层到现代开发演进全解析
c语言·c++·c·内存管理·编译模型
_深海凉_8 小时前
LeetCode热题100-除了自身以外数组的乘积
数据结构·算法·leetcode
Hical_W9 小时前
为 C++ Web 框架设计三层 PMR 内存池:从原理到实战
c++·github
BestOrNothing_20159 小时前
C++零基础到工程实战(3.6):逻辑实战示例—日志模块
c++·命令行参数·main函数·switch case·逻辑判断·if else·enum class
t***5449 小时前
有哪些常见的架构设计模式在现代C++中应用
开发语言·c++
米粒110 小时前
力扣算法刷题 Day 42(股票问题总结)
算法·leetcode·职场和发展
zopple10 小时前
汇编、C、C++和Java核心技术对比
c语言·汇编·c++