首页 > 试题广场 >

矩阵第K小

[编程题]矩阵第K小
  • 热度指数:683 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个 的矩阵,每行每列都是升序排列的,请你找到矩阵中第 K 小的元素

数据范围:
示例1

输入

[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25]],5

输出

5
示例2

输入

[[1,1,1],[1,1,1],[1,1,1]],5

输出

1
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param matrix int整型ArrayList<ArrayList<>> 
     * @param k int整型 
     * @return int整型
     */
    public int KthinMatrix(ArrayList<ArrayList<Integer>> matrix, int k) {
        // write code here
        int row = matrix.size();
        int col = matrix.get(0).size();

        Queue<Integer> queue = new PriorityQueue<>();
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                queue.add(matrix.get(i).get(j));
            }
        }

        while (k > 1) {
            queue.poll();
            k--;
        }
        return queue.poll();
    }
}

发表于 2022-04-16 20:37:49 回复(0)

问题信息

难度:
1条回答 2263浏览

热门推荐

通过挑战的用户

查看代码