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];
}
}