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;
}
相关推荐
ʚ希希ɞ ྀ11 分钟前
打家劫舍----背包dp
数据结构·算法·leetcode
兰令水14 分钟前
topcode【随机算法题】【2026.5.17打卡-java版本】
java·算法·leetcode
Byte Wizard15 分钟前
字符函数与字符串函数
c语言
shylyly_16 分钟前
文件操作函数
c语言·文件·文件操作·文件函数·顺序读写函数·随机读写函数·状态检测函数
AI科技星20 分钟前
基于全域数学0-1-∞体系的1.237宇宙临界常数及时空超导统一理论
c语言·开发语言·线性代数·量子计算·agi
Liangwei Lin10 小时前
LeetCode 118. 杨辉三角
算法·leetcode·职场和发展
我星期八休息11 小时前
Linux系统编程—基础IO
linux·运维·服务器·c语言·c++·人工智能·算法
YL2004042612 小时前
047从前序与中序遍历序列构造二叉树
算法·leetcode
kkeeper~13 小时前
0基础C语言积跬步之深入理解指针(4)
c语言·开发语言
学会870上岸华师14 小时前
C 语言程序设计——第一章课后编程题
c语言·开发语言·学习·算法