题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每 一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数, 判断数组中是否含有该整数。
利用每一行从左到右递增排序,每一列从上到下递增排序,可以用该值先与右上角比较,若大于就行加一,若小于就列减一。
public static boolean findNum(int[][] a, int num) {
boolean flag = false;
for (int i = 0, j = a[i].length - 1; i < a.length && j > 0; ) {
if (a[i][j] > num) {
j++;
} else if (a[i][j] < num) {
i++;
} else {
flag = true;
break;
}
}
return flag;
}
}