题解 | #二维数组中的查找#
二维数组中的查找
https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
public class Solution {
public boolean Find(int target, int [][] array) {
if(array==null||array.length==0){
return false;
}
int n=array.length;
int m=array[0].length;
int i=0;int j=0;
int right=0; // 标记是不是指针是不是从右回退回来的,是的话就不需要再向后一列查询了,直接行+1;
while(i>=0&&i<n&&j>=0&&j<m){
int val=array[i][j];
if(val==target){
return true;
}else{
if(val>target){
j--;
right=1;
}
else{
if(right==1){
i++;
right=0;
}else{
if(j==m-1){
i++;
}else{
j++;
}
}
}
}
}
return false;
}
}