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
}
相关推荐
止语Lab2 小时前
Go并发编程实战:Channel 还是 Mutex?一个场景驱动的选择框架
开发语言·后端·golang
_深海凉_3 小时前
LeetCode热题100-最小栈
java·数据结构·leetcode
不知名的忻3 小时前
Morris遍历(力扣第99题)
java·算法·leetcode·morris遍历
王码码20354 小时前
Go语言的包管理:从GOPATH到Go Modules
后端·golang·go·接口
_深海凉_4 小时前
LeetCode热题100-除了自身以外数组的乘积
数据结构·算法·leetcode
米粒16 小时前
力扣算法刷题 Day 42(股票问题总结)
算法·leetcode·职场和发展
浅念-8 小时前
从LeetCode入门位运算:常见技巧与实战题目全解析
数据结构·数据库·c++·笔记·算法·leetcode·牛客
白毛大侠8 小时前
Docker vs 虚拟机 vs Go 用户态/内核态:这三组概念
运维·docker·golang·kvm
田梓燊9 小时前
leetcode 142
android·java·leetcode
_深海凉_9 小时前
LeetCode热题100-最大数(179)
算法·leetcode·职场和发展