mirror of
https://github.com/chefyuan/algorithm-base.git
synced 2024-12-27 04:46:17 +00:00
add code of 二维数组的二分查找 in go
This commit is contained in:
parent
e63c35b170
commit
44004ea38f
@ -52,6 +52,8 @@
|
|||||||
|
|
||||||
#### 题目代码
|
#### 题目代码
|
||||||
|
|
||||||
|
Java Code:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
class Solution {
|
class Solution {
|
||||||
public boolean searchMatrix(int[][] matrix, int target) {
|
public boolean searchMatrix(int[][] matrix, int target) {
|
||||||
@ -84,3 +86,32 @@ class Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Go Code:
|
||||||
|
```go
|
||||||
|
func searchMatrix(matrix [][]int, target int) bool {
|
||||||
|
if len(matrix) == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// 行数
|
||||||
|
row := len(matrix)
|
||||||
|
//列数
|
||||||
|
col := len(matrix[0])
|
||||||
|
// 行数 * 列数 - 1 为右指针
|
||||||
|
left, right := 0, row * col - 1
|
||||||
|
for (left <= right) {
|
||||||
|
mid := left + ((right - left) >> 1)
|
||||||
|
//将一维坐标变为二维坐标
|
||||||
|
rownum := mid / col
|
||||||
|
colnum := mid % col
|
||||||
|
if matrix[rownum][colnum] == target {
|
||||||
|
return true
|
||||||
|
} else if matrix[rownum][colnum] > target {
|
||||||
|
right = mid - 1
|
||||||
|
} else if matrix[rownum][colnum] < target {
|
||||||
|
left = mid + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user