首页 > 其他分享 >leetcode 378. Kth Smallest Element in a Sorted Matrix

leetcode 378. Kth Smallest Element in a Sorted Matrix

时间:2023-05-30 18:02:48浏览次数:34  
标签:13 matrix int self Element 378 element def Matrix

Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth smallest element in the matrix.

Note that it is the kth smallest element in the sorted order, not the kth distinct element.

Example:

matrix = [
   [ 1,  5,  9],
   [10, 11, 13],
   [12, 13, 15]
],
k = 8,

return 13.

Note:
You may assume k is always valid, 1 ≤ k ≤ n2.

 

#! /usr/bin/evn python
#coding:utf-8

from heapq import heappush, heappop

class MinQ(object):
    def __init__(self):
        self.h = []
    
    def push(self, value):
        heappush(self.h, value)
    
    def pop(self):
        return heappop(self.h)


class Solution(object):
    def kthSmallest(self, matrix, k):
        """
        :type matrix: List[List[int]]
        :type k: int
        :rtype: int
        """
        assert matrix
        rows_cnt = len(matrix)
        min_q = MinQ()
        for j,c in enumerate(matrix[0]):
            min_q.push([c, 0, j])
        n = 1
        val = None
        while n <= k:
            val = min_q.pop()
            i,j = val[1]+1, val[2]
            if i < rows_cnt:
                min_q.push([matrix[i][j], i, j])
            n += 1
        return val[0]

骚年,牢记最小堆的实现!

标签:13,matrix,int,self,Element,378,element,def,Matrix
From: https://blog.51cto.com/u_11908275/6381164

相关文章

  • leetcode 27. Remove Element
    Givenanarraynumsandavalueval,removeallinstancesofthatvaluein-placeandreturnthenewlength.Donotallocateextraspaceforanotherarray,youmustdothisbymodifyingtheinputarrayin-placeTheorderofelementscanbechanged.Itdoesn&......
  • leetcode Kth Largest Element in a Stream——要熟悉heapq使用
    703.KthLargestElementinaStreamEasyDesignaclasstofind thekthlargestelementinastream.Notethatitisthekthlargestelementinthesortedorder,notthekthdistinctelement.Your KthLargest classwillhaveaconstructorwhichacceptsanin......
  • 黑马Vue3 + ElementPlus + Pinia 小兔鲜电商项目2023版
    黑马Vue3+ElementPlus+Pinia小兔鲜电商项目2023版download:3w51xuebccomElementPlus:优雅高效的Vue组件库随着Vue.js在前端开发中的广泛应用,越来越多的UI组件库涌现出来。而其中一款备受瞩目的组件库就是ElementPlus。作为一款基于Vue3.0的组件库,ElementPlus不仅完美地继承了......
  • element-ui中Select 选择器value-key的使用
    场景描述很多时候我们都需要使用下拉框Select选择器。在获取值的时候,通常只需要传递对应的id给后端就行了。但是特殊情况,后端不想去查库,不仅需要我们id,还有name,code之类的。这个时候前端通过id去查询对应的name,code这样做会写循环,查询,非常的麻烦。其实Select选择器......
  • ElementUI的form表单验证注意事项
    ElementUI的form表单验证注意事项1.踩过的坑,记录一下。验证表单时一直提示必填项未填写,实际已经填写了。2.el-form的正确使用流程el-form就是最外层的form表单,做验证有三个必填属性,不填写验证就会不正确。ref属性:相当于ID,稍后的提交按钮函数会用到它。:model:绑定要用......
  • element ui 编辑页面 重新选择日期后页面显示的日期没反应
    问题:可以看到数据是实时更新了。加一个强制渲染显示正常了 this.$forceUpdate()方法会触发一次视图重新渲染,即使组件没有显式声明要更新数据或属性,也可以强制刷新页面。但是,由于它可能带来性能和其他副作用,因此应该尽量避免使用,并且只用于特定情况下的修复。......
  • 直播app开发搭建,Vue Element UI Upload 上传多张图片
    直播app开发搭建,VueElementUIUpload上传多张图片<template> <div>  <el-card>   <h1>轮播图-图片上传管理</h1>   <el-divider></el-divider>   <!--注意:使用:model="uploadImgForm"不要使用v-model="uploadImgForm&q......
  • springboot+springsecurity+jwt+elementui图书管理系统
    图书管理系统关注公号:java大师,回复“图书”,获取源码一、springboot后台1、mybatis-plus整合1.1添加pom.xml<!--mp逆向工程--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></de......
  • springboot+springsecurity+jwt+elementui图书管理系统
    ​​图书管理系统​​一、springboot后台1、mybatis-plus整合1.1添加pom.xml<!--mp逆向工程--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>......
  • Vue引入Element组件
    直接在VSCode的VueCLI的项目里进行npm安装,终端输入npmielement-ui-S显示报错信息,-4048,看了一下应该是我权限不够,虽然这里的VSCode也是Powershell的终端命令。 打开桌面主菜单,选择管理员命令行,切换到指定的文件下,然后安装element,成功!! 复盘一下发现,应该是我的VSCode打开......