算法 二维数组中查找-(双指针)

牛客网: 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
}

你可能感兴趣的:(牛客网,算法刷题,二维数组查找,双指针)