首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

找寻二维数组的鞍点

2012-10-06 
寻找二维数组的鞍点问题阐述:寻找二维数组的鞍点(即元素所在行值最大,所在列值又最小)?代码清单:public cl

寻找二维数组的鞍点

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

?

代码清单:

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);}}

?

热点排行