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
}
相关推荐
chillxiaohan1 小时前
GO学习记录——多文件调用
开发语言·学习·golang
蒟蒻的贤2 小时前
leetcode链表
算法·leetcode·链表
执着2593 小时前
力扣hot100 - 94、二叉树的中序遍历
数据结构·算法·leetcode
Grassto4 小时前
11 Go Module 缓存机制详解
开发语言·缓存·golang·go·go module
福大大架构师每日一题6 小时前
ollama v0.15.2发布:新增Clawdbot集成指令,全面支持Ollama模型启动!
golang·ollama
老鼠只爱大米7 小时前
LeetCode经典算法面试题 #114:二叉树展开为链表(递归、迭代、Morris等多种实现方案详细解析)
算法·leetcode·二叉树·原地算法·morris遍历·二叉树展开
参.商.8 小时前
【Day25】26.删除有序数组中的重复项 80.删除有序数组中的重复项II
leetcode·golang
小高Baby@8 小时前
ShouldBind、ShouldBindJson、ShouldBindQuery的区别
后端·golang
执着2598 小时前
力扣hot100 - 144、二叉树的前序遍历
数据结构·算法·leetcode
散峰而望9 小时前
【算法竞赛】树
java·数据结构·c++·算法·leetcode·贪心算法·推荐算法