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;
}
相关推荐
文丑颜不良啊6 小时前
LeetCode876~900题目解析
java·leetcode
lhbweilai11 小时前
分析FreeRTOS内核对象API的源码实现(八)
c语言·开发语言·stm32·单片机
艾络迅Acceleronix11 小时前
环境监测终端:STM32+EG800Z AT+ 艾络迅平台实战|多传感器采集联动全流程
c语言·stm32·单片机·嵌入式硬件·物联网·1024程序员节
Zwawa12 小时前
一只按键不只“按下”:短按、长按和连按如何共存
c语言·单片机·嵌入式
lvwangshu12 小时前
T3 涂鸦带师 题解
题解·贪心·倍增·技巧·思维好题·断环成链
wyhwust14 小时前
程序设计基础--C语言输入输出单元测试
c语言·开发语言
木井巳15 小时前
【动态规划: 路径问题】不同路径
java·算法·leetcode·动态规划
another heaven15 小时前
【C/C++ C++ 面向对象架构的五大特点与能力场景:封装、继承、多态、抽象与 RAII(含实战案例)】
c语言·c++·架构
晓蛋15 小时前
什么是C语言
c语言·跨平台·编程语言·高级语言·低级语言
晒太羊的猫16 小时前
hot100子串
java·算法·leetcode