二维数组中的检索。二维数组中的检索。

问题:在一个二维数组中,每一行还照从左到右递增的顺序排序,每一样排都仍从上到下递增的逐一排序。请好一个函数,输入这样的一个二维数组和一个平头,判断数组中是否带有该整数。

题目:在一个二维数组中,每一行还照从左到右递增的顺序排序,每一样排列都仍从上到下递增的逐一排序。请好一个函数,输入这样的一个二维数组和一个平头,判断数组中是否包含该整数。

 1  2  8  9

 1  2  8  9

2  4  9  12

2  4  9  12

4  7  10  13

4  7  10  13

思路:

思路:

冲数组的特点,从右侧上比开始查找(也只是打左下角),若超过,则为生,若小于,则于左。如搜寻上面数组中之7,从9始发,9>7,往左移一各到8,8>7,再朝着左移一员到2,2<7,往下更换一位至4,4<7,再往下转移一号得7==7。

依据数组的特性,从右边上斗开始查找(也不过打左下角),若高于,则向生,若小于,则为左。如搜寻上面数组中之7,从9开始,9>7,往左移一个至8,8>7,再往左移一员到2,2<7,往生更换一位到4,4<7,再朝着生转移一各类得7==7。

 

 

参照代码:

参照代码:

public class Solution {
    public boolean Find(int target, int [][] array) {
        int row = array.length;
        int colum = array[0].length;
        for(int i=0;i<row;i++){
            for(int j=colum-1;j>=0;j--){
                if (target == array[i][j]){
                    return true;
                   }else if(target < array[i][j]){
                    continue;
                }else{
                    break;
                }
            }
        }
        return false;

    }
}
public class Solution {
    public boolean Find(int target, int [][] array) {
        int row = array.length;
        int colum = array[0].length;
        for(int i=0;i<row;i++){
            for(int j=colum-1;j>=0;j--){
                if (target == array[i][j]){
                    return true;
                   }else if(target < array[i][j]){
                    continue;
                }else{
                    break;
                }
            }
        }
        return false;

    }
}