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;
    }
}
相关推荐
Wang153015 小时前
Java编程基础与面向对象核心概念
java
毕设源码-郭学长15 小时前
【开题答辩全过程】以 康复管理系统为例,包含答辩的问题和答案
java
毅炼15 小时前
hot100打卡——day17
java·数据结构·算法·leetcode·深度优先
winfreedoms15 小时前
java-网络编程——黑马程序员学习笔记
java·网络·学习
Tisfy15 小时前
LeetCode 3010.将数组分成最小总代价的子数组 I:排序 OR 维护最小次小
算法·leetcode·题解·排序·最小次小值
开开心心就好15 小时前
键盘改键工具免安装,自定义键位屏蔽误触
java·网络·windows·随机森林·计算机外设·电脑·excel
IManiy15 小时前
总结之Temporal全局速率控制(二)第三方速率控制服务设计
java
OpenMiniServer15 小时前
电气化能源革命下的社会
java·人工智能·能源
独自破碎E15 小时前
LCR_019_验证回文串II
java·开发语言
坚持就完事了15 小时前
Java中的一些关键字
java·开发语言