【要求】 时间复杂度为O(N+M),额外空间复杂度为O(1)。
public class e11FindNumInSortedMatrix {
public static boolean isContains(int[][] matrix,int K){
int row=0;
int col=matrix[0].length-1;
while(row<matrix.length&&col>=0){
if(matrix[row][col]==K){
return true;
}else if (matrix[row][col]>K){
col--;
}else{
row++;
}
}
return false;
}
public static void main(String[] args) {
int[][] matrix = new int[][] { { 0, 1, 2, 3, 4, 5, 6 },
{ 10, 12, 13, 15, 16, 17, 18 },
{ 23, 24, 25, 26, 27, 28, 29 },
{ 44, 45, 46, 47, 48, 49, 50 },
{ 65, 66, 67, 68, 69, 70, 71 },
{ 96, 97, 98, 99, 100, 111, 122 },
{ 166, 176, 186, 187, 190, 195, 200 },
{ 233, 243, 321, 341, 356, 370, 380 }
};
int K = 234;
System.out.println(isContains(matrix, K));
}
}