1.简述:

给你一个 矩阵 ,其中每行和每列元素均按升序排序,找到矩阵中第 小的元素。请注意,它是 排序后 的第 小元素,而不是第 个 不同 的元素。n x nmatrixkkk

你必须找到一个内存复杂度优于  的解决方案。O(n2)

 

示例 1:

输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8
输出:13
解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素是 13

示例 2:

输入:matrix = [[-5]], k = 1
输出:-5

 

2.代码实现:

class Solution {
    public int kthSmallest(int[][] matrix, int k) {
        int rows = matrix.length, columns = matrix[0].length;
        int[] sorted = new int[rows * columns];
        int index = 0;
        for (int[] row : matrix) {
            for (int num : row) {
                sorted[index++] = num;
            }
        }
        Arrays.sort(sorted);
        return sorted[k - 1];
    }
}