由于每一行都有序,后一行起始大于前一行最后的元素。 所以我们遍历每一行的末尾和target比较,当大于target时在这一行寻找target即可。 要时刻注意终止循环的条件。
public class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int m = matrix.length;
if( m==0 )
{
return false;
}
int n = matrix[0].length;
int j=n-1;
int i=0;
while(i<m)
{
if( matrix[i][j]==target )
{
return true;
}
else if( matrix[i][j]<target )
{
if( j!=n-1)
{
return false;
}
else
{
i++;
}
}
else
{
j--;
if( j<0 )
{
return false;
}
}
}
return false;
}
}