搜索
您的当前位置:首页正文

剑指offer_1 二维数组中的查找

来源:意榕旅游网

题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

思路:
数组是从左到右、从上到下递增顺序的,那么可以想到的是最小数在array[0][0],最大数在array[row][clo]中,我们想要找到数组是否存在target,那么可以在选择左下角或者右上角最为比较

public class Solution {
    public boolean Find(int target, int [][] array) {
        
        int rows = array.length;
        int clos = array[0].length;
        int i=0;
        
        while((rows>0) && (i<clos)){
            // target < array[eows-1][i], 那么就向上走
            if(target<array[rows-1][i]){
                rows--;
                // 否则就向右走
            }else if(target>array[rows-1][i]){
                i++;
                // 相等直接返回true
            }else{
                return true;
            }
            
        }
        // 遍历完仍未找到,返回false
        return false;
    }
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top