在一个从上到下递增,从左到右递增的数列中,判断某个数是否在这个数组中。
例如:
1 2 4 7
2 3 5 8
4 5 6 9
解题思路:
从第一行的最右面开始(上面示例中的7),如果大于7则说明在第一行的下面(i++)排除7所在的行,如果小于7则说明在最后一列的左边(即j--)排除7所在的列,同时注意i,j的边界不要超范围。
public class Solution {
public boolean Find(int target, int [][] array) {
if(array.length==0||array[0].length==0)
return false;
int i=0;int j=array[0].length-1;
while(true){
if(array[i][j]==target){
return true;
}
else if(array[i][j]>target&&j>0){
j--;
}else if(array[i][j]<target&&i<array.length-1)
{
i++;
}else
return false;
}
}
}