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;
}
相关推荐
岁月栖迟4 小时前
leetcode 49. 字母异位词分组
windows·算法·leetcode
Asmalin4 小时前
【代码随想录day 21】 力扣 77. 组合
算法·leetcode·职场和发展
XH华4 小时前
C语言第十一章内存在数据中的存储
c语言·开发语言
3壹7 小时前
单链表:数据结构中的高效指针艺术
c语言·开发语言·数据结构
knd_max9 小时前
C语言:内存函数
c语言
YLCHUP10 小时前
【联通分量】题解:P13823 「Diligent-OI R2 C」所谓伊人_连通分量_最短路_01bfs_图论_C++算法竞赛
c语言·数据结构·c++·算法·图论·广度优先·图搜索算法
特立独行的猫a11 小时前
C/C++三方库移植到HarmonyOS平台详细教程
c语言·c++·harmonyos·napi·三方库·aki
啟明起鸣18 小时前
【数据结构】B 树——高度近似可”独木成林“的榕树——详细解说与其 C 代码实现
c语言·开发语言·数据结构
nonono18 小时前
数据结构——线性表(链表,力扣中等篇,技巧型)
数据结构·leetcode·链表
XH华19 小时前
C语言第十三章自定义类型:联合和枚举
c语言·开发语言