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;
}
相关推荐
sin_hielo19 分钟前
leetcode 1523
数据结构·算法·leetcode
代码游侠26 分钟前
复习——线性表
linux·c语言·数据结构·学习·算法
烛衔溟29 分钟前
C语言图论:无向图基础
c语言·数据结构·图论·无向图
渡我白衣36 分钟前
计算机组成原理(3):计算机软件
java·c语言·开发语言·jvm·c++·人工智能·python
小龙报39 分钟前
【C语言初阶】动态内存分配实战指南:C 语言 4 大函数使用 + 经典笔试题 + 柔性数组优势与内存区域
android·c语言·开发语言·数据结构·c++·算法·visual studio
小龙报42 分钟前
【算法通关指南:算法基础篇(三)】一维差分专题:1.【模板】差分 2.海底高铁
android·c语言·数据结构·c++·算法·leetcode·visual studio
小白程序员成长日记1 小时前
2025.12.07 力扣每日一题
算法·leetcode·职场和发展
不悔哥1 小时前
路由器特性——网络状态检测
linux·c语言·网络·tcp/ip·智能路由器
承渊政道1 小时前
C++学习之旅【C++基础知识介绍】
c语言·c++·学习·程序人生
烛衔溟1 小时前
C语言图论:有向图基础
c语言·数据结构·图论·有向图