2014-11-04 57 views
0

返回的數組應包含輸入數組中具有最大總和的三個連續元素。我卡住了?有人幫忙嗎?我需要幫助返回最大數組的輸入

public class Assigment4 { 

public static void main(String[] args) { 

    int [] setOfNum= {1,2,3,4}; 

} 
public static int [] threeIntegers (int [] numbers){ 

    int [] arrayNew = new int [numbers.length-1]; 
    int sum=0; 
    for(int i=0; i<3;i++){ 
    sum=sum+numbers[i]; 
    } 
    if (sum>)//i got stuck here 



} 
} 

回答

0

我認爲這應該工作。你需要兩個循環

public static int [] threeIntegers (int [] numbers){ 
    int max=0 //assuming array contains positive only 
    int [] maxArray = new int [3]; 
    for(int j=0;j<numbers.length-2;++j){ 
     int sum=0; 
     int [] newArray = new int [3]; 
     for(int i=0; i<3;i++){ 
     sum+=numbers[i+j]; 
     newArray[i]=numbers[i+j]; 
     } 
     if (sum>max){ 
     max=sum; 
     maxArray=newArray; 
     } 
    } 

    return maxArray; 
} 
+0

感謝這幫助了很多! – Dee 2014-11-04 19:19:39

0
public static int [] threeIntegers (int [] numbers){ 
    int max=0; 
    int [] maxArray = null; 
    for(int i=0;i<numbers.length-3;++i) 
    { 
     int sum=numbers[i] + numbers[i+1] + numbers[i+2]; 
     if (sum>max) 
     { 
     max=sum; 
     maxArray= new int[]{numbers[i], numbers[i+1], numbers[i+2]}; 
     } 
    } 

    return maxArray; 
}