牛客网: BM18
题目: 行、列均递增的二维数组中查找指定值
思路: 取右上角位置坐标(row, col)的值与目标值比较,如果相等直接返回,如果大于目标值,col需减小,否则row需增加;指针位置超出矩阵合法范围时,即不存在目标值。
代码:
package main
// import "fmt"
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param target int整型
* @param array int整型二维数组
* @return bool布尔型
*/
func Find( target int , array [][]int ) bool {
// write code here
if len(array) == 0 || len(array[0]) == 0 {
return false
}
m, n := len(array), len(array[0])
row, col := 0, n - 1
for row < m && col >= 0 {
if array[row][col] == target {
return true
} else if array[row][col] > target {
col--
} else {
row++
}
}
return false
}