第84天:100天DSA编码挑战

发布: (2025年12月27日 GMT+8 12:39)
1 min read
原文: Dev.to

Source: Dev.to

问题

GeeksforGeeks – 矩阵中的第 k 小元素

难度: 中等 | 准确率: 61.42%

给定一个大小为 n × n 的矩阵 mat[][],其中每行和每列都按非递减顺序排序,找出矩阵中的第 k 小元素。

解法

class Solution:
    def kthSmallest(self, mat, k):
        n = len(mat)
        low, high = mat[0][0], mat[-1][-1]

        while low < high:
            mid = (low + high) // 2
            count = 0

            # Count elements ≤ mid in each row using binary search
            for row in mat:
                l, r = 0, n
                while l < r:
                    m = (l + r) // 2
                    if row[m] <= mid:
                        l = m + 1
                    else:
                        r = m
                count += l

            if count < k:
                low = mid + 1
            else:
                high = mid

        return low
Back to Blog

相关文章

阅读更多 »

第85天:100天DSA编码挑战

挑战概述:接受新挑战——每日解答 GeeksforGeeks POTD 并分享我的解法!💻🔥 问题:最小时间满足所有订单 GeeksforGeeks…

100 天 DSA 编码挑战的第 82 天

问题 在二维矩阵中寻找峰值元素 GeeksforGeeks 题目链接 https://www.geeksforgeeks.org/problems/find-the-peak-element-in-a-2d-matrix/1 难度...

第78天:100天DSA编程挑战

接受新的挑战:每天解答 GeeksforGeeks POTD 并分享我的解法!💻🔥 目标:提升问题解决能力,升级编程水平,并学习……

第76天:100天DSA编码挑战

问题 Bus Conductor – GeeksforGeeks https://www.geeksforgeeks.org/problems/bus-conductor--170647/1 难度:Easy 正确率:75.3% 示例 示例 1 - 输入...