package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param target int整型 * @param array int整型二维数组 * @return bool布尔型 */ func Find( target int , array [][]int ) bool { row := 0 column := len(array[0]) - 1 for row < len(array) && column >= 0 { if array[row][column] == target { return true } else if array[row][column] > target { column-- } else { row++ } } return false }
解题思路
每次用矩阵的右上角和 target 进行比较,会出现三种情况:
- 两者相等,则直接返回 true
- 右上角的值大于 target,则说明该列的值都大于 target,所以不用再在该列中进行比较
- 右上角的值小于 target,则说明该行的值都小于 target,所以不用再在该行中进行比较