日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java最大子方阵_Java实验(5) 最大子方阵

發布時間:2024/10/8 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java最大子方阵_Java实验(5) 最大子方阵 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給定一個由0,1組成的n*n方陣(n在運行時提醒用戶輸入),判斷其中由全1組成的最大子方陣的左上角位置和階數。例如用戶輸入n為5,隨機產生的方陣如下:

程序的輸出為:最大子方陣位于(2,2),階數3。

要求編寫方法實現上述功能,返回值是一個包含3個元素的數組,依次表示行下標,列下標,階數。

方法原型:public static int[] findLargestBlock(int[][] m)

package maxsubmatrix;

import java.util.Scanner;

public class MaxSubMatrix {

public static void main(String[] args) {

Scanner input=new Scanner(System.in);

System.out.println("請輸入方陣維數n:");

int n=input.nextInt();

int [][] m=new int[n][n];

int []a=new int[3];

//產生一個n*n矩陣,元素為0或1并輸出

for(int i=0;i

for(int j=0;j

m[i][j]=(int)(Math.random()*10)%2;

System.out.print(m[i][j]+"\t");

}

System.out.print("\n");

}

a=findLargestBlock(m);

System.out.print("\n");

System.out.println("最大子方陣位于:("+a[0]+","+a[1]+")");

System.out.println("階數:"+a[2]);

}

//找到最大的全為1的矩陣塊

public static int[] findLargestBlock(int [][] m){

boolean t=true;

int []a=new int[3];

int n=m.length;

int i=0,j=0,l=0;

for(l=n;l>=1;l--){ //矩陣維數,從最大開始

for(i=0;i<=n-l;i++){

for(j=0;j<=n-l;j++){

t=true;

for(int x=i;x

for(int y=j;y

if(m[x][y]!=1){ //不為1退出此輪循環

t=false;

break;

}

}

if(t==false) break;

}

if(t==true) break;

}

if(t==true) break;

}

if(t==true) break;

}

a[0]=i;

a[1]=j;

a[2]=l;

return a;

}

}

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的java最大子方阵_Java实验(5) 最大子方阵的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。