题解 | #二维数组中的查找#

二维数组中的查找

https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e

利用线性特性搜索。

根据题目描述,对于任何一个点,同列的上面的点必定小于该值,同行右侧的点必定大于该值。

  1. 从左下角开始搜索,
  2. 如果该点>target,那么就向上走;如果该点<target,就往右走。
package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 
 * @param target int整型 
 * @param array int整型二维数组 
 * @return bool布尔型
*/
func Find( target int ,  array [][]int ) bool {
    // write code here
    row, col := len(array), len(array[0])
    x, y := row - 1, 0

    for x >= 0 && y < col {
        if array[x][y] == target {
            return true
        }else if array[x][y] < target {
            // 往右走
            y ++
        }else {
            x --
        }
    }
    return false
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务