public int kthSmallest(int[][] matrix, int k) { if (k < 0 || k > matrix.length * matrix[0].length) { return -1; } PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Comparator.reverseOrder());
for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length; j++) { if (maxHeap.size() < k) { maxHeap.offer(matrix[i][j]); } else { if (maxHeap.peek() > matrix[i][j]) { maxHeap.poll(); maxHeap.offer(matrix[i][j]); } } } } return maxHeap.peek(); }
近期评论