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

题目:

题解:

cpp 复制代码
bool check(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(int **matrix, int matrixSize, int *matrixColSize, int k) {
    int left = matrix[0][0];
    int right = matrix[matrixSize - 1][matrixSize - 1];
    while (left < right) {
        int mid = left + ((right - left) >> 1);
        if (check(matrix, mid, k, matrixSize)) {
            right = mid;
        } else {
            left = mid + 1;
        }
    }
    return left;
}
相关推荐
weixin_456808381 天前
【沁恒蓝牙开发】关闭独立看门狗
c语言·单片机·嵌入式硬件
weixin_456808381 天前
【沁恒蓝牙开发】拓展广播 Code PHY-从机
c语言·嵌入式硬件
计算机安禾1 天前
【数据结构与算法】第16篇:串(String)的定长顺序存储与朴素模式匹配
c语言·数据结构·c++·学习·算法·visual studio code·visual studio
AI科技星1 天前
基于v≡c公设的理论优化方案
c语言·开发语言·算法·机器学习·数据挖掘
副露のmagic1 天前
链表章节 leetcode 思路&实现
数据结构·leetcode·链表
自然常数e1 天前
预处理讲解
java·linux·c语言·前端·visual studio
jllllyuz1 天前
小型物联网系统——家居网关设计(C语言实现)
c语言·物联网·struts
daxi1501 天前
C语言从入门到进阶——第17讲:字符串函数
c语言·开发语言·算法·蓝桥杯
wljy11 天前
第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(个人见解,已完结)
c语言·c++·算法·蓝桥杯
程序员zgh1 天前
C++ 环形队列 从原理到实例演示
c语言·开发语言·数据结构·c++·学习