Java 數組中尋找最大子數組


 程序設計思想:
依次將數組划分開,先判斷一個元素的單個數組大小,接下來兩個,依次上升,最后將所得結果進行比較賦值,輸出最大結果。

1
package ketangTest; 2 //張生輝,康治家 2017.3.20 3 public class Test { 4 public static void main(String args[]){ 5 int b[]={-7,9,-2,84}; 6 int a[]={-7,9,-2,84,-7,9,-2,84}; 7 int max,max2,max3,max4; 8 max=a[0]; 9 int Max=max;//Max值每次都與最大值判斷,之后替代 10 for(int i=0;i<a.length;i++) 11 { 12 if(a[i]>max) 13 { 14 max=a[i]; 15 } 16 max2=max; 17 if(i<a.length-1)//處理越界問題,判斷越界跳過即可 18 { 19 if(a[i]+a[i+1]>max2) 20 { 21 max2=a[i]+a[i+1]; 22 } 23 } 24 max3=max2; 25 if(max3>Max) 26 { 27 Max=max3; 28 } 29 if(i<a.length-2) 30 { 31 if(a[i]+a[i+1]+a[i+2]>max3) 32 { 33 max3=a[i]+a[i+1]+a[i+2]; 34 } 35 } 36 max4=max3; 37 if(max4>Max) 38 { 39 Max=max4; 40 } 41 if(i<a.length-3) 42 { 43 if(a[i]+a[i+1]+a[i+2]+a[i+3]>max4) 44 { 45 max4=a[i]+a[i+1]+a[i+2]+a[i+3]; 46 } 47 } 48 if(max4>Max) 49 { 50 Max=max4; 51 } 52 53 } 54 System.out.println(Max); 55 } 56 57 }
程序運行結果截圖:

 

程序編譯錯誤結果分析:
因為在判斷數組時需要利用一個For循環,最后導致在判斷一個元素的For循環下,判斷兩個及以上的時候會出現越界,於是加入判斷條件來限制就可以解決這問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM