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

题目:

题解:

java 复制代码
class Solution {
    public int kthSmallest(int[][] matrix, int k) {
        int n = matrix.length;
        int left = matrix[0][0];
        int right = matrix[n - 1][n - 1];
        while (left < right) {
            int mid = left + ((right - left) >> 1);
            if (check(matrix, mid, k, n)) {
                right = mid;
            } else {
                left = mid + 1;
            }
        }
        return left;
    }

    public boolean 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;
    }
}
相关推荐
体育分享_大眼1 小时前
从零搭建高并发体育直播网站:架构设计、核心技术与性能优化实战
java·性能优化·系统架构
琢磨先生David2 小时前
Java 在人工智能领域的突围:从企业级架构到边缘计算的技术革新
java·人工智能·架构
Ludicrouers2 小时前
【Leetcode-Hot100】和为k的子数组
算法·leetcode·职场和发展
计算机学姐2 小时前
基于SpringBoo的地方美食分享网站
java·vue.js·mysql·tomcat·mybatis·springboot·美食
Hanson Huang5 小时前
【数据结构】堆排序详细图解
java·数据结构·排序算法·堆排序
路在脚下@5 小时前
Redis实现分布式定时任务
java·redis
xrkhy5 小时前
idea的快捷键使用以及相关设置
java·ide·intellij-idea
巨龙之路5 小时前
Lua中的元表
java·开发语言·lua
花花鱼6 小时前
itext7 html2pdf 将html文本转为pdf
java·pdf
小丁爱养花6 小时前
驾驭 Linux 云: JavaWeb 项目安全部署
java·linux·运维·服务器·spring boot·后端·spring