题目描述
选取右上角的解答方法,如果目标比这个数小,则减少一列,如果目标比这个数大,则减少一行
public class Solution {
public boolean Find(int target, int [][] array) {
int j = array[0].length-1;
boolean found = false;
for(int i = 0;i<array.length&&j>-1;){
if(array[i][j]==target){
found = true;
return found;
}
else if(array[i][j]<target){
i++;
}
else{
j--;
}
}
return found;
}
}
下面是选择左下角的数字来与目标进行比较,方法与右上角类似(但是不能采取左上角和右下角)
public class Solution {
public boolean Find(int target, int [][] array) {
boolean found = false;
int i = array.length-1;
for(int j = 0;j<array[0].length&&i>-1;){
if(target == array[i][j]){
found = true;
return found;
}
else if(array[i][j]>target){
i--;
}
else{
j++;
}
}
return found;
}
}