您的位置:首页 > 编程语言 > Go语言

【GO语言学习】LeetCode74. 搜索二维矩阵---二分法

2019-05-28 18:04 1781 查看

题目

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:

  • 每行中的整数从左到右按升序排列。
  • 每行的第一个整数大于前一行的最后一个整数。

示例 1:

输入:
matrix = [
[1,   3,  5,  7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 3
输出: true

示例 2:

输入:
matrix = [
[1,   3,  5,  7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 13
输出: false

代码

 

[code]func searchMatrix(matrix [][]int, target int) bool {
if len(matrix)==0{
return false
}
if len(matrix[0])==0{
return false
}
m:=len(matrix)
n:=len(matrix[0])
i := 0
j := m*n-1
mid := (i+j)/2
for i<=j{
mid = (i+j)/2
if matrix[mid/n][mid%n]==target{
return true
}else if matrix[mid/n][mid%n] > target{
j = mid - 1
}else{
i = mid + 1
}
}
return false

}

结果

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: