1、二维数组的查找

题目描述

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
 
思路:该题目不是下面一行每一个数字都大于上面一行的数字,1,2,3,4;2,3,4,5.
每个元素的左上角元素都小于该元素,每个元素的右下角元素都大于该元素。从矩阵的左下角开始搜索,如果m[i][j]==(直接返回),<(++j),>(--i).
func searchMatrix(matrix [][]int, target int) bool {
    if len(matrix) == 0 || len(matrix[0]) == 0 {
        return false
    }
    m, n := len(matrix) - 1, len(matrix[0]) - 1
    i, j := m, 0
    for i >= 0 && j <= n {
        if matrix[i][j] == target {
            return true
        } else if matrix[i][j] < target {
            j++ 
        } else {
            i--
        }   
    }

    return false
}

 

posted @ 2021-04-07 01:26  zqlucky  阅读(89)  评论(0编辑  收藏  举报