首先這里是創(chuàng)建一個二維數(shù)組。二維數(shù)組創(chuàng)建的方式有兩種
創(chuàng)新互聯(lián)主營殷都網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā),殷都h5成都微信小程序搭建,殷都網(wǎng)站營銷推廣歡迎殷都等地區(qū)企業(yè)咨詢
① 例如創(chuàng)建一個5 x 5的二維數(shù)組(5行5列),可以直接int[][] arr = new int[5][5];
此二維數(shù)組共25個元素,默認(rèn)值都為0
②如果想創(chuàng)建一個固定5行但列不一致的二維數(shù)組就不能像上面一樣創(chuàng)建
例如:第一列1個元素,第二列2個元素
此時你只能創(chuàng)建一個固定行數(shù)的二維數(shù)組,列數(shù)根據(jù)需要調(diào)整
int[][] arr = new int[5][];
此時arr就像下圖,因為此時沒有進行賦值,所以默認(rèn)值為null
此時你的代碼中通過循環(huán)來創(chuàng)建多個一維數(shù)組,將其地址賦值如下圖
0x11 存放了一維數(shù)組一個元素的地址
0x22存放了一維數(shù)組兩個元素的地址
......
然后通過arr[0][0],arr[1][0]等就能訪問到數(shù)組中存放的數(shù)值了
總結(jié)下來就是:
如果需要創(chuàng)建的二維數(shù)組列數(shù)都是一致的,就選用int[][] arr = new int[行數(shù)][固定列數(shù)];這樣的方式
如果需要創(chuàng)建的二維數(shù)組列數(shù)不一致:就選用int[][] arr = new int[行數(shù)][];
這是分治求最大子數(shù)組和
首先重要點是:遞歸,這個是關(guān)鍵,何為遞歸,就是自己調(diào)用自己,比如這個代碼中的helper方法,就是遞歸,該代碼運行時,會自己調(diào)用自己很多次,數(shù)組就會兩分,兩分再兩分,這樣就會把大的問題分解成小的問題,最后把小的問題匯集起來得到答案。
你表達不出的東西和沒理解的就是這個遞歸,別小看這個遞歸,這是本代碼的關(guān)鍵點,最重要的部分。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("請輸入你要輸?shù)臄?shù)組長度:");
int lenth = s.nextInt();
System.out.println("請分別輸入"+lenth+"個數(shù):");
int[] shuZu = new int[lenth];
for(int i=0;ilenth;i++)
{
shuZu[i] = s.nextInt();
}
int max = shuZu[0];
int min = shuZu[0];
System.out.println("您輸入的數(shù)組為:");
for(int i=0;ilenth;i++)
{
System.out.print(" "+shuZu[i] );
if(maxshuZu[i])
max = shuZu[i];
if(minshuZu[i])
min = shuZu[i];
}
System.out.println("\n最大值:max="+max );
System.out.println("最小值:min="+min );
}
}
這個不知道滿不滿足要求呢?
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
//初始化一個測試的二維數(shù)組
int[][] a = new int[][] { { 34,234,543,2,42,224 }, { 234,56,88,241,564,234,555,24 }, { 13,444,534,76,9999,894,34 } };
System.out.println("max value is:" + getMaxValue1(a));
System.out.println("max value is:" + getMaxValue2(a));
}
/**
* 方法1:遍歷二維數(shù)組的所有的元素與當(dāng)前最大的值比較,并記錄
*/
static int getMaxValue1(int[][] a){
int maxValue = 0;//用于記錄當(dāng)然最大值
if(a!=null a.length!=0)
for (int[] a1 : a) {
for (int i : a1) {
if(maxValuei)maxValue = i;
}
}
return maxValue;
}
/**
* 方法2:對子數(shù)組進行排序,然后比較子數(shù)組中最大的值。當(dāng)然這里只求最大值也沒必要排序-_-!!,只是體現(xiàn)了一種思想
*/
static int getMaxValue2(int[][] a){
int maxValue = 0;
if(a!=null a.length!=0)
for (int[] a1 : a) {
Arrays.sort(a1);//對a1進行排序,升序的
if(maxValuea1[a1.length-1])maxValue = a1[a1.length-1];//比較子數(shù)組中最大的值
}
return maxValue;
}
}
網(wǎng)頁名稱:java最大子數(shù)組和代碼 最大子數(shù)組和問題java
標(biāo)題鏈接:http://muchs.cn/article8/doedhip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、建站公司、面包屑導(dǎo)航、網(wǎng)站設(shè)計公司、網(wǎng)頁設(shè)計公司、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)