题目:牛客网

解题思路:

利用二维数组由上到下,由左到右递增的规律,

那么选取右上角或者左下角的元素a[row][col]与target进行比较,

当target小于元素a[row][col]时,那么target必定在元素a所在行的左边,

即col--;

当target大于元素a[row][col]时,那么target必定在元素a所在列的下边,

即row++;

 

public class Solution {
    public boolean Find(int target, int [][] array) {
        int rows = array.length;
        int cols = array[0].length;
        int i=rows-1,j=0;
        while(i>=0 && j<cols){
            if(target<array[i][j])
                i--;
            else if(target>array[i][j])
                j++;
            else
                return true;
        }
        return false;
    }
}