Somma Massima Array

di il
1 risposte

Somma Massima Array

Buongiorno ragazzi all'università ci hanno dato il seguente compito...

"Scrivere un metodo
static int[] sommaMassima (int[] a) in Java, che preso come parametro un array di numeri interi,
restituisce un sottoarray di a (di elementi consecutivi) avente somma massima in a.
Ad esempio, se a = {-10, 35, -20, 50, -30, -14, 2, 19} il metodo deve restituire il
sottoarray {35, -20, 50} che è quello di somma massima."

io ho creato il metodo "sommaMassima" nel segunte modo...

"static int sommaMassima(int[] a){
int sommaMax=a[0];
for(int i=0;i<a.length;i++){
int num1=a[0],num2=a[0];
int somma=0;
for(int j=0;j<=a.length;j++){
somma+=a[j];
if(somma>sommaMax){sommaMax=somma;num1=a; num2=a[j];}
}
}return sommaMax;"

ma da errore il compilatore cosa ho sbagliato secondo voi?
Grazie in anticipo.

1 Risposte

  • Re: Somma Massima Array

    amosdisaba ha scritto:


    Buongiorno ragazzi all'università ci hanno dato il seguente compito...

    "Scrivere un metodo
    static int[] sommaMassima (int[] a) in Java, che preso come parametro un array di numeri interi,
    restituisce un sottoarray di a (di elementi consecutivi) avente somma massima in a.
    Ad esempio, se a = {-10, 35, -20, 50, -30, -14, 2, 19} il metodo deve restituire il
    sottoarray {35, -20, 50} che è quello di somma massima."
    Primo: guarda questa discussione .... state facendo praticamente la stessa cosa.

    amosdisaba ha scritto:


    io ho creato il metodo "sommaMassima" nel segunte modo...

    "static int sommaMassima(int[] a){
    int sommaMax=a[0];
    for(int i=0;i<a.length;i++){
    int num1=a[0],num2=a[0];
    int somma=0;
    for(int j=0;j<=a.length;j++){
    somma+=a[j];
    if(somma>sommaMax){sommaMax=somma;num1=a; num2=a[j];}
    }
    }return sommaMax;"

    ma da errore il compilatore cosa ho sbagliato secondo voi?

    Non l'hai postato qui sul forum bene, ben indentato e manca una } alla fine. Quindi non so se quello che hai nel tuo sorgente è esattamente quello che hai postato qui oppure è diverso.

    Aggiungendo la } e togliendo ovviamente le " " attorno che hai messo qui, il codice compila.
    Comunque se devi ritornare solo la somma, usare quei num1/num2 non serve. Se invece vuoi restituire il sotto-array della somma, vedi nella discussione linkata.
Devi accedere o registrarti per scrivere nel forum
1 risposte