搜刮二维矩阵
给你一个满足下述两条属性的 m x n 整数矩阵:
- 每行中的整数从左到右按非严酷递增次序分列。
- 每行的第一个整数大于前一行的末了一个整数。
给你一个整数 target ,假如 target 在矩阵中,返回 true ;否则,返回 false 。
示例 1:
- 输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
- 输出:true
复制代码 示例 2:
- 输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
- 输出:false
复制代码 题解:
将矩阵的拼接成一个升序数组即可
- func searchMatrix(matrix [][]int, target int) bool {
- m, n := len(matrix), len(matrix[0])
- l, r := 0, m*n-1
- for l <= r {
- // mid := (r-l)/2 + l
- mid := (l + r) / 2
- x := matrix[mid/n][mid%n]
- if x < target {
- l = mid + 1
- } else if x > target {
- r = mid - 1
- } else {
- return true
- }
- }
- return false
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |