读书人

找寻二维数组的鞍点

发布时间: 2012-10-06 17:34:01 作者: rapoo

寻找二维数组的鞍点

问题阐述:寻找二维数组的鞍点(即元素所在行值最大,所在列值又最小)

?

代码清单:

public class FindSaddlePoint {public static void findSaddlePoint(int[][] array) {boolean flag = true; // 标记变量for (int i = 0; i < array.length; i++) {int index = getMaxIndexInOneRow(array[i]); // 获得该行最大元素的下标(列号)for (int j = 0; j < array[0].length; j++) {if (i == j) {continue;} else if (array[i][index] > array[j][index]) {flag = false;break; // 没有鞍点}}if (flag == true) {// 不满足上面的条件就是鞍点了System.out.println("找到一个鞍点[" + i + "," + index + "]"+ array[i][index]);}}}// 获得一行中最大元素的下标public static int getMaxIndexInOneRow(int[] row) {int index = 0;int first = row[0];for (int i = 1; i < row.length; i++) {if (first < row[i]) {index = i;}}return index;}// 打印数组public static void prtn(int[][] array) {for (int i = 0; i < array.length; i++) {for (int j = 0; j < array[0].length; j++) {System.out.print(array[i][j] + "\t");}System.out.println();}}public static void main(String[] args) {int[][] array = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };FindSaddlePoint.prtn(array);FindSaddlePoint.findSaddlePoint(array);}}

?

读书人网 >编程

热点推荐