1 Star 0 Fork 0

Paulden/Algorithm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
search_matrix.go 907 Bytes
一键复制 编辑 原始数据 按行查看 历史
Paulden 提交于 2022-09-08 09:01 . implement matrix search
package list
// Problem Definition: https://leetcode.cn/problems/search-a-2d-matrix-ii/
func SearchMatrix(matrix [][]int, target int) bool {
n, m := len(matrix), len(matrix[0])
i, j := 0, m-1
for i < n && j >= 0 {
switch {
case target == matrix[i][j]:
return true
case target > matrix[i][j]:
i++
default:
j--
}
}
return false
}
// Problem Definition: https://leetcode.cn/problems/kth-smallest-element-in-a-sorted-matrix/
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
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/guuzaa/algorithm.git
git@gitee.com:guuzaa/algorithm.git
guuzaa
algorithm
Algorithm
main

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385