二维数组中的查找

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

简单的一道题,不过做了个新方法:

从右上角开始,分三种情况:

  array[i][j]==target,返回true;

  array[i][j]>target,排除最后一列,即cols-=1;

  array[i][j]<target,排除第一行,即break;

具体如下:

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

  ok,解决

 

posted @ 2016-07-31 15:52  菜包包  阅读(125)  评论(0编辑  收藏  举报