首页 > 其他分享 >[LeetCode] LeetCode378. 有序矩阵中第K小的元素

[LeetCode] LeetCode378. 有序矩阵中第K小的元素

时间:2023-12-17 11:11:56浏览次数:24  
标签:大顶 matrix int LeetCode378 矩阵 heap LeetCode e2

题目描述

思路:Top-K问题 + 大顶堆

使用大顶堆求第K小的元素。

方法一:

class Solution {
    public int kthSmallest(int[][] matrix, int k) {
        // 1. 使用大顶堆
        PriorityQueue<Integer> heap = new PriorityQueue<>((e1, e2) -> e2 - e1);
        for (int i = 0; i < matrix.length; i ++) {
            for (int j = 0; j < matrix[i].length; j ++) {
                heap.add(matrix[i][j]);
                if (heap.size() > k) {
                    heap.remove();
                }
            }
        }
        return heap.peek();
    }
}

标签:大顶,matrix,int,LeetCode378,矩阵,heap,LeetCode,e2
From: https://www.cnblogs.com/keyongkang/p/17908867.html

相关文章

  • [LeetCode] LeetCode692. 前K个高频单词
    题目描述思路注意是前K个高频单词,就是TopK问题,只能用小根堆找最大的K个元素啊,用大根堆找的就是最小的K个元素了思路一:classSolution{publicList<String>topKFrequent(String[]words,intk){Map<String,Integer>map=newHashMap<>();//小......
  • [LeetCode] LeetCode451. 根据字符出现频率排序
    题目描述思路:使用大顶堆方法一:classSolution{publicStringfrequencySort(Strings){//1.HashMap统计词频Map<Character,Integer>map=newHashMap<>();for(charc:s.toCharArray()){map.put(c,map.getOrDefault(......
  • [LeetCode] 2482. Difference Between Ones and Zeros in Row and Column
    Youaregivena0-indexedmxnbinarymatrixgrid.A0-indexedmxndifferencematrixdiffiscreatedwiththefollowingprocedure:LetthenumberofonesintheithrowbeonesRowi.LetthenumberofonesinthejthcolumnbeonesColj.Letthenumbero......
  • 代码随想录算法训练营Day2 |977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵
    明天四级考试了,时间非常紧张,好在这些数组相关的算法题很久之前就做过,思路上是不存在不理解的地方的。有序数组的平方是一道非常直观的双指针方法的应用,实现过程之中没有什么坑。长度最小的子数组就是我们的滑动窗口方法了,题目不难,但是这种处理方式有着很深刻的背景,之后还会遇到......
  • [LeetCode] LeeCode703. 数据流中的第K大元素
    题目描述思路:最小堆好好领悟这个代码://将nums数组所有元素插入小根堆中for(intnum:nums){ heap.offer(num); //当小根堆的容量大于k时,就删除堆顶元素 if(heap.size()>k)heap.poll();}当heap.size()==k的时候,还是会再添加一个元素,此时堆内部会已经排好序,......
  • 代码随想录算法训练营第二天| LeetCode977.有序数组的平方、209.长度最小的子数组、59
    LeetCode977.有序数组的平方●今日学习的文章链接和视频链接代码随想录(programmercarl.com) 题目链接977.有序数组的平方-力扣(LeetCode) ●自己看到题目的第一想法昨天正好做了这道题目,总体来说就是用双指针法,要么从绝对值最小的数开始排序,要么从绝对值最大的数开......
  • 算法Day2双指针法排序,滑动窗口,螺旋矩阵
    Day2双指针法排序,滑动窗口,螺旋矩阵ByHQWQF2023/12/14笔记977.有序数组的平方https://leetcode.cn/problems/squares-of-a-sorted-array/返回一个非递减顺序排序的整数数组每个元素的平方后组成的新数组,新数组也按非递减顺序排序。解法:双指针法由于给定数组本身是有序的,......
  • 代码随想录算法训练营第二天|977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵
    LeetCode977有序数组的平方题目链接:977.有序数组的平方思路:双指针,由两侧向中间逼近 LeetCode 209.长度最小的子数组题目链接:209.长度最小的子数组思路:滑动窗口,关键点滑动窗口起始点和终止点位置关系的确定 LeetCode 59.螺旋矩阵题目链接:59.螺旋矩阵关键点:循环处理......
  • 04 - 矩阵键盘
    04-矩阵键盘前言LCD1602液晶屏在学习使用矩阵键盘之前,为了后续的调试和显示,有必要简单了解一下LCD1602液晶屏的使用方法。江协科技已经给我们提供了模块化的代码,所以我们只需要调用对应方法就可以了,常用方法如下:至于LCD1602具体如何操作使用,后续会有,暂时就先放一边扫描的......
  • 59. 螺旋矩阵 II
    题目:59.螺旋矩阵II要求:给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。答案:两种解法:一种用计算机模拟顺时针旋转的效果,这种方法看起来容易,做起来并没有那么容易,我开始就用这个思路做的,结果发现写不出来,看了下题......