Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] Calcolo di intervalli consecutivi

    Ciao a tutti,
    devo trovare un algoritmo per il calcolo di intervalli consecutivi.

    ho un vettore di interi
    [1,2,3,4,5,7,8,9,10,11,12,13,15,16,18,20,21,23,24,2 6]

    Quindi in questo esempio ho l'intervallo 1,2,3,4,5 che forma un intervallo consecutivo di 5 elementi
    poi 7,8,9,10,11,12,13 che è un intervallo di numeri consecutivi di 7 elementi
    poi 15,16 due elementi
    18 un elemento
    e così via.....

    ho già sviluppato un metodo che, oltre ad essere molto pesante dal punto di vista computazionale, da anche un risultato errato.

    Devo trovare qualcosa che sia leggero e al tempo stesso sia robusto.
    inoltre se ci fossero più intervalli di pari elemento mi interesserebbe solamente l'ultimo intervallo di con l'elemento più alto.

    Come potrei fare?
    Qualcuno ha già fatto qualcosa di simile?

    Grazie per ogni aiuto/consiglio.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    inoltre se ci fossero più intervalli di pari elemento mi interesserebbe solamente l'ultimo intervallo di con l'elemento più alto.

    Come potrei fare?
    Se ho capito bene l'obiettivo finale, di per sé basta una singola scansione lineare del vettore. Basta tenersi una variabile di indice dell'inizio intervallo e una variabile per la lunghezza dell'intervallo. Finché il numero che segue è consecutivo si incrementa la lunghezza, altrimenti la si azzera. Chiaramente alla prima coppia consecutiva si prende anche l'indice di inizio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ciao andbin,
    nella mia spiegazione ho tralasciato un fatto importante.
    Devo prendere gli estremi dell'intervallo che ha più numeri consecutivi.
    Nel mio esempio precedente dovrò prendere 7 e 13 perché ha il numero di elementi consecutivi più grande di tutti.

    Grazie.
    Ciao
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    Devo prendere gli estremi dell'intervallo che ha più numeri consecutivi.
    Nel mio esempio precedente dovrò prendere 7 e 13 perché ha il numero di elementi consecutivi più grande di tutti.
    Beh, non è un grosso problema. Tieni indice/lunghezza dell'intervallo "corrente" e anche indice/lunghezza "max". Quando un intervallo termina, se e solo se la lunghezza è maggiore della lunghezza "max", copi i valori. Alla fine di tutta la scansione avrai indice/lunghezza dell'intervallo più lungo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Avevi ragione mi sono perso nel classico bicchiere d'acqua quando la soluzione era semplicissima.
    l'indice di init poi alla fine me lo sono tranquillamente calcolato, bastava fare index - lunghezza e cosi ci si poteva ricavare l'indice di partenza.

    Grazie mille.
    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.