「鞍点java」找出二维数组的鞍点
今天给各位分享鞍点java的知识,其中也会对找出二维数组的鞍点进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
看我这个程序有什么问题 用java程序写鞍点
概念错了!!!行中最大,列中最小
package web;
/**
* 在规格矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点
*/
public class SaddlePoint
{
public static void main ( String[] args )
{
int a[][] = { { 2, 1, 1118, 1 }, { 1, 3, 111, 21 }, { 2, 9, 11111, 1 } };
findSaddlePoints (a);
}
public static void findSaddlePoints ( int[][] array )
{
String colString = "|";
// 创建列中的行
for ( int i = 0; i array[0].length; i++ ) // 规格矩阵列
{
int colMin = Integer.MAX_VALUE;
int row = -1;
for ( int j = 0; j array.length; j++ ) // 行
{
if (array[j][i] colMin)
{
colMin = array[j][i];
row = j;
}
}
colString += row + "," + i + "," + colMin + "|";
}
String rowString = "|";
for ( int j = 0; j array.length; j++ )
{
int rowMax = Integer.MIN_VALUE;
int col = -1;
for ( int k = 0; k array[j].length; k++ ) // 不同列
{
if (array[j][k] rowMax)
{
rowMax = array[j][k];
col = k;
}
}
rowString += j + "," + col + "," + rowMax + "|";
}
String[] s1 = colString.split ("\\|");
String[] s2 = rowString.split ("\\|");
for ( String ss1 : s1 )
{
for ( String ss2 : s2 )
{
if (!"".equals (ss1) ss1.equals (ss2))
{
String[] sx = ss1.split (",");
System.out.println ("SaddlePoint is : (" + sx[0] + ", " + sx[1] + ") " + sx[2]);
}
}
}
}
}
java二维数组求鞍点
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);
}
}
}
java从键盘输入一个数组,找出其中的鞍点
/*
程序的功能:
求任意的一个m×n矩阵的鞍点——鞍点是指该位置上的元素在该行上为最大、在该列上为最小,
矩阵中可能没有鞍点,但最多只有一个鞍点。
m、n(2=m=20、2=n=20)及矩阵元素从键盘输入(只考虑int型和每行、每列中没有并列最大/最小的情况)。
*/
public static void main(String[] args) {
int[][] arr = new int[20][20];
int m, n;
int max, min;
int maxHPos, maxLPos, minHPos, minLPos;
int flag = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入m的值:");
m = sc.nextInt();
System.out.println("请输入n的值:");
n = sc.nextInt();
/* 从键盘输入m×n矩阵,并存放到数组arr中 */
System.out.println("请输入矩阵的值:");
for (int i = 0; i m; i++) {
for (int j = 0; j n; j++) {
arr[i][j] = sc.nextInt();
}
}
/* 在矩阵中找鞍点 */
for (int i = 0; i m; i++) {
/* 找第i行的最大值及最大值的下标(包括行标和列标),i的值从0开始 */
max = arr[i][0];
maxHPos = i;
maxLPos = 0;
for (int j = 1; j n; j++) {
if (arr[i][j] max) {
max = arr[i][j];
maxHPos = i;
maxLPos = j;
}
}
/* 在第i行的最大值所在列找该列的最小值及其下标 */
min = arr[0][maxLPos];
minHPos = 0;
minLPos = maxLPos;
for (int k = 1; k m; k++) {
if (arr[k][maxLPos] min) {
min = arr[k][maxLPos];
minHPos = k;
minLPos = maxLPos;
}
}
/* 判断第i行的最大值是否是第i行最大值所在列的最小值,如果是,找到鞍点*/
if ((maxHPos == minHPos) (maxLPos == minLPos)) {
System.out.println(String.format("有鞍点:arr[%d][%d]=%d", maxHPos,
maxLPos, arr[maxHPos][maxLPos]));
flag = 1; //给变量flag赋值1,表示鞍点已找到
break; //鞍点已找到,结束查找过程
}
}
if (0 == flag) //flag的值为0,表示在矩阵中没有找到鞍点
{
System.out.println("没有鞍点");
}
}
关于JAVA鞍点问题的编程
public class Text {
public static void main(String[] args){
int aa[][] = new int[6][6];
for(int i = 0;i6;i++){
for(int j = 0;j6;j++){
aa[i][j]=new Random().nextInt(3);
System.out.print(aa[i][j]+" ");
}
System.out.println();
}
int max = 0;
int min = 100;
int flag = 0;
int flag2 = 0;
for(int i=0;i6;i++){
for(int j=0;j6;j++){
if(aa[i][j]max){
max=aa[i][j];
flag = j;
}
}
for(int k=0;k6;k++){
if(aa[k][flag]min){
min = aa[k][flag];
flag2 = k;
}
}
if(flag2 == i){
System.out.println(i +":" + flag +"是按点");
System.out.println(aa[i][flag]);
}
max = 0;
min = 100;
flag = 0;
flag2 = 0;
}
}
}
关于鞍点java和找出二维数组的鞍点的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-27,除非注明,否则均为
原创文章,转载请注明出处。