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

二维数组中的查找

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

public class Solution {
    public boolean Find(int target, int [][] array) {
    	// 无效输入:空指针
        if(array == null){
            return false;
        }
        // 整体思路:选择右上角的数与target进行比较,大于则去掉这一列,小于则去掉这一行
        // 时间O(n),空间O(1)
        int row = 0;
        int column = array[0].length - 1;
        while(row < array.length && column >= 0){
            if(array[row][column] == target)
                return true;
            else if(array[row][column] < target)
                row ++;
            else if(array[row][column] > target)
                column --;
            else
                return false;
        }
        return false;
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务