自己的误区:以为满足条件的二维数组可以按行展开成一个有序数组,但其实不是,比如:
1,2,8,9
2,4,9,12
4,7,10,13
思路:从右上角开始查起,如果右上角比target大,则删除该列,小则删除改行,相等返回
public class Solution {
public boolean Find(int target, int [][] array) {
if(array.length==0) return false;
int m = array.length, n = array[0].length;
for(int col=n-1,row=0;col>=0&&row<m;){
if(array[row][col]==target)
return true;
else if(array[row][col]>target){
col--;
}
else
row++;
}
return false;
}
网友评论