【二维有序数组找num】
在行也有序,列也有序的二维数组中,找num,找到返回true,否则返回false。
解答:这道题的关键是二维数组行也有序,列也有序,那么可以从右上角或者左下角开始遍历,因为当该值比num大,那么同一行往左遍历,如果
该值比num小,则往下遍历,如果数组越界,则返回false
public static boolean f(int[][] arr, int num) {
int row = arr.length;
int col = arr[0].length;
for (int i = 0; i < row; ) {
for (int j = col - 1; j >= 0; ) {
if (arr[i][j] > num) {
j--;
} else if (arr[i][j] < num) {
i++;
} else {
return true;
}
}
}
return false;
}
网友评论