剑指offer:二维数组中的查找(简单思维)
二维数组中的查找
https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tqId=11154&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking&tab=answerKey
题意:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:可简化直O(n),通过右上角的数,每次可以直接排除一行或一列
public class Solution {
public boolean Find(int target, int [][] array) {
boolean flag=false;
int len=array[0].length-1;
int len2=array.length-1;
int i=len,j=0;
while(i>=0&&j<=len2){
if(array[j][i]>target) i--;
else if(array[j][i]<target) j++;
else{
flag=true;
break;
}
}
return flag;
}
}
字节跳动公司福利 1301人发布