java二维数组求鞍点
答案:3 悬赏:0
解决时间 2021-02-01 23:15
- 提问者网友:离殇似水流年飞逝
- 2021-02-01 12:56
找出一个二维数组的鞍点,即该位置的元素是其所在行也是其所在列的最大值(也可能没有鞍点)
最佳答案
- 二级知识专家网友:专属的偏见
- 2021-02-01 13:34
package andian;
public class DoMain {
public static void main(String[] args) {
int[][] num = new int[][]{{11,8,3},{4,15,6},{7,8,9}};
getAnDian(num);
}
private static void getAnDian(int[][] num){
if(num == null || num.length == 0 || num[0].length == 0){
System.out.println("未传入数组或传入数组不正确!");
return;
}
int h = num.length;//二维数组的行数
int v = num[0].length;//二维数组的列数
for(int i = 0; i < h; i++){
for(int j = 0; j < v; j++){
System.out.print(num[i][j] + "\t");
}
System.out.println();
}
int temp = 0;
int index = 0;
boolean flag = true;
for(int i = 0; i < h; i++){
temp = num[i][0];
flag = true;
for(int j = 1; j < v; j++){
if(temp < num[i][j]){
temp = num[i][j];
index = j;
}
}
for(int k = 0; k < h; k++){
if(temp < num[k][index]){
System.out.printf("第%d行没有鞍点\n",i+1);
flag = false;
break;
}
}
if(flag)
System.out.printf("第%d行的鞍点为%d\n",i+1,temp);
}
}
}
public class DoMain {
public static void main(String[] args) {
int[][] num = new int[][]{{11,8,3},{4,15,6},{7,8,9}};
getAnDian(num);
}
private static void getAnDian(int[][] num){
if(num == null || num.length == 0 || num[0].length == 0){
System.out.println("未传入数组或传入数组不正确!");
return;
}
int h = num.length;//二维数组的行数
int v = num[0].length;//二维数组的列数
for(int i = 0; i < h; i++){
for(int j = 0; j < v; j++){
System.out.print(num[i][j] + "\t");
}
System.out.println();
}
int temp = 0;
int index = 0;
boolean flag = true;
for(int i = 0; i < h; i++){
temp = num[i][0];
flag = true;
for(int j = 1; j < v; j++){
if(temp < num[i][j]){
temp = num[i][j];
index = j;
}
}
for(int k = 0; k < h; k++){
if(temp < num[k][index]){
System.out.printf("第%d行没有鞍点\n",i+1);
flag = false;
break;
}
}
if(flag)
System.out.printf("第%d行的鞍点为%d\n",i+1,temp);
}
}
}
全部回答
- 1楼网友:抱不住太阳的深海
- 2021-02-01 14:23
public class AndDian {
private int row;
private int col;
private int [][]array;
public AndDian(){
row=0;
col=0;
int [][]array=new int[row][col];
}
public AndDian(int arow,int acol,int aarray[][]){
row=arow;
col=acol;
array=aarray;
}
void priOut(int a[][])
{
for (row = 0; row < a.length; row++)
{
for (col = 0; col < a[row].length; col++)
System.out.print(a[row][col] + " ");
System.out.println();
}
}
void getAnDian(int a[][]){
int hang=0;int lie=0;
for (row=0;row<a[row].length;row++){
int dian=a[row][0];
for(col=0;col<a[col].length;col++){
if(a[row][col]>dian){
dian=a[row][col];
lie=col;
}
for(row=0;row<a[row].length;row++)//判断一行中的最大值是否是所在列的最小值;
{if(a[row][lie]>dian)<br/> System.out.println("the andian is "+a[row][lie]);<br/> }
}
}
}
}
public class AndDianTest{
public static void main(String []args){
int [][]array1={{2,3,4,5,89,65,33},
{5,3,54,65,76,87,9},
{4,43,23,54,54,76,76},
{65,76,53,86,97,96,54}};
AndDian m=new AndDian(4,7,array1);
m.priOut(array1);
m.getAnDian(array1);
}
}
- 2楼网友:一个很哇塞的汉子
- 2021-02-01 13:52
那个8不是鞍点!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯