LeetCode 剑指 Offer 04. 二维数组中的查找
题目描述
在一个
m x n
的二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下递增的顺序排列。请实现一个函数,判断一个目标值target
是否在该二维数组中。
示例 1: 输入:
matrix = [[1, 3, 5], [7, 9, 11], [15, 17, 19]], target = 9
输出:true
解释:9
在数组中存在。
示例 2: 输入:
matrix = [[1, 3, 5], [7, 9, 11], [15, 17, 19]], target = 10
输出:false
解释:10
在数组中不存在。
提示:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 1000
-10^9 <= matrix[i][j] <= 10^9
思路分析
思路描述
参考代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
func searchMatrix(matrix [][]int, target int) bool {
if len(matrix) == 0 || len(matrix[0]) == 0 {
return false
}
row, col := 0, len(matrix[0])-1 // 从右上角开始
for row < len(matrix) && col >= 0 {
if matrix[row][col] == target {
return true
} else if matrix[row][col] > target {
col-- // 向左移动
} else {
row++ // 向下移动
}
}
return false
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
func findTargetIn2DPlants(matrix [][]int, target int) bool {
if len(matrix) == 0 || len(matrix[0]) == 0 {
return false
}
row, col := 0, len(matrix[0])-1 // 从右上角开始
for row < len(matrix) && col >= 0 {
if matrix[row][col] == target {
return true
} else if matrix[row][col] > target {
col-- // 向左移动
} else {
row++ // 向下移动
}
}
return false
}
1
write your code here
CC BY-NC-SA 4.0
许可协议,转载请注明出处!
本博客所有文章除特别声明外,均采用