二维数组中的查找

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

思路:从一个右上角开始找(也可以左下角),要找的值是target,当前值比target大,就说明当前列上所有值不符合,比target小,就说明当前行所有值不符合条件。

 

public boolean Find(int target, int [][] array) {
    int column=array[0].length,row=array.length;
        int i=0,j=column-1;
        boolean falg=false;
        while(i<row&&j>=0){
      //当前值比target大,就说明当前列上所有值不符合
if(array[i][j]>target) j--;
      //当前值比target小,就说明当前行所有值不符合条件
else if(array[i][j]<target) i++; else{ falg=true; break; } } return falg; }

 

posted @ 2017-04-08 10:37  雪浪snowWave  阅读(105)  评论(0编辑  收藏  举报