Golang | Leetcode Golang题解之第378题有序矩阵中第K小的元素

题目:

题解:

Go 复制代码
func kthSmallest(matrix [][]int, k int) int {
    n := len(matrix)
    left, right := matrix[0][0], matrix[n-1][n-1]
    for left < right {
        mid := left + (right - left) / 2
        if check(matrix, mid, k, n) {
            right = mid
        } else {
            left = mid + 1
        }
    }
    return left
}

func check(matrix [][]int, mid, k, n int) bool {
    i, j := n - 1, 0
    num := 0
    for i >= 0 && j < n {
        if matrix[i][j] <= mid {
            num += i + 1
            j++
        } else {
            i--
        }
    }
    return num >= k
}
相关推荐
Swift社区7 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
Dong雨8 小时前
力扣hot100-->栈/单调栈
算法·leetcode·职场和发展
trueEve9 小时前
SQL,力扣题目1369,获取最近第二次的活动
算法·leetcode·职场和发展
007php0079 小时前
GoZero 上传文件File到阿里云 OSS 报错及优化方案
服务器·开发语言·数据库·python·阿里云·架构·golang
高 朗11 小时前
【GO基础学习】基础语法(2)切片slice
开发语言·学习·golang·slice
九圣残炎11 小时前
【从零开始的LeetCode-算法】3354. 使数组元素等于零
java·算法·leetcode
IT书架11 小时前
golang面试题
开发语言·后端·golang
程序猿小柒12 小时前
leetcode hot100【LeetCode 4.寻找两个正序数组的中位数】java实现
java·算法·leetcode
_OLi_13 小时前
力扣 LeetCode 106. 从中序与后序遍历序列构造二叉树(Day9:二叉树)
数据结构·算法·leetcode
我明天再来学Web渗透13 小时前
【SQL50】day 2
开发语言·数据结构·leetcode·面试