tsx81429 发表于 2024-6-24 05:34:25

leetcode74搜索二维矩阵

题目

给你一个满足下述两条属性的 m x n 整数矩阵:


[*]每行中的整数从左到右按非严酷递增顺序分列。
[*]每行的第一个整数大于前一行的最后一个整数。
给你一个整数 target ,假如 target 在矩阵中,返回 true ;否则,返回 false 。
示例

输入:matrix = [,,], target = 3
输出:true
https://img-blog.csdnimg.cn/direct/2e27ae07259e4f76b98633a4a430546d.png
解析

这道题着实还是利用二分法,就相当于将所有的二维数组串起来(但并不是真的要有串起来实现的代码),比如上面的例子,target=3,有3行4列,m=3, n=4,则有:
x := matrix
代码如下(左闭右开法):
func searchMatrix(matrix [][]int, target int) bool {
   m := len(matrix)
   n := len(matrix)
   left := 0
   right := m * n
   for left < right {
           mid := left + (right-left)/2
           x := matrix
           if x == target {
                   return true
           } else if x < target {
                   left = mid + 1
           } else {
                   right = mid
           }
   }
   return false
}

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: leetcode74搜索二维矩阵