LeetCode74|有序矩阵中第K小的元素

时间:2022-07-26
本文章向大家介绍LeetCode74|有序矩阵中第K小的元素,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1,问题简述

给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。

请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。

2,示例

示例:

matrix = [
   [ 1,  5,  9],
   [10, 11, 13],
   [12, 13, 15]
],
k = 8,

返回 13。
 

提示:
你可以假设 k 的值永远是有效的,1 ≤ k ≤ n2 。

3,题解思路

排序

4,题解程序

 
import java.util.*;

public class KthSmallestTest2 {
    public static void main(String[] args) {
        int[][] matrix = {{1, 5, 9}, {10, 11, 13}, {12, 13, 15}};
        int k = 8;
        int kthSmallest = kthSmallest(matrix, k);
        System.out.println("kthSmallest = " + kthSmallest);
    }

    public static int kthSmallest(int[][] matrix, int k) {
        if (matrix == null || matrix[0].length == 0) {
            return -1;
        }
        List<Integer> list = new ArrayList<>(matrix.length << 1);
        for (int[] ints : matrix) {
            for (int anInt : ints) {
                list.add(anInt);
            }
        }
        Collections.sort(list);
        return list.get(k - 1);

    }
}

5,题解程序图片版

6,总结

这次不使用堆进行操作了,使用最简单的排序进行操作了,最近一段时间的输出文章都是自己之前做过的内容,自己打算将做过的题都整理成一篇篇文章进行梳理一下,喜欢看java的文章可以查看历史记录,本人写过Mybatis框架的系列文章,包括简单的增删改查,高级用法,都是工作中常用的,JDK源码也写了十几篇,MySQL文系列文章等都可以在历史文章进行查找的。