题目:
在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
思路:
将初始值设为二维数组右上角那个数,即array[0][m]
若target大于这个数则往下移一行
若target小于这个数则往左移一列
public class Solution {
public boolean Find(int target, int [][] array) {
boolean exist = false;
int row = array.length;
int column = array[0].length;
if(row==0||column==0){
return false;
}
int r=0,c=column-1;
while(r<row&&c>=0){
if(array[r][c]==target){
exist =true;
break;
}else if(target>array[r][c]){
++r;
}else if(target<array[r][c]){
--c;
}
}
return exist;
}
}