Array-Int addieren

Thisor

Bekanntes Mitglied
Hey,
ich soll ein Programm schreiben, dass die Array werte summieren soll, allerdings nur die zahlen die "alleine stehen". Bedeutet, die erste und letzte Zahl kommen nicht im Ergebnis vor. Sondern nur wenn die Zahl weder rechts noch links zum "Nachbarn" identisch ist.
Es läuft bisher noch nicht wie es laufen soll.
Mein bisheriger Code:


Java:
int sum = 0;
        for (int i = 0; i < nums.length - 1; i++) {
            for (int j = 0; j < nums.length -1; j++) {
                if (nums[i] != nums[j]) {
                    sum = sum + nums[i];
                } else if (nums[i] == nums[j]) {
                    i++;
//                    j++;
                }
            }
        }
        return sum;
 
Zuletzt bearbeitet von einem Moderator:

Khal Drogo

Bekanntes Mitglied
Deine Beschreibung ist meiner Meinung nach etwas unklar bzw. teilweise sogar widersprüchlich, allerdings scheint mit der erste Fehler darin zu liegen, dass du zwei for-Schleifen benutzt und diese inkl. der if-Abfragen nicht richtig verstanden zu haben scheinst, an dieser Stelle solltest du vielleicht noch mal die Basics wiederholen.

Wenn ich dich richtig verstehe, willst du alle Werte des Arrays an der Stelle i aufsummieren, falls an den Stellen i-1 oder i+1 nicht die gleiche Zahl erneut auftaucht. In diesem Fall solltest du mit einer for-Schleife und zwei gesondert behandelten Fällen relativ einfach zum Ziel gelangen.
Insbesondere könntest du am Anfang deiner Methode überprüfen, wie lang das Array ist, bei einer Länge von 0 oder 1 könntest du z. B. das Ergebnis ohne Berechnung zurückgeben.

Mit freundlichen Grüßen
Xelsarion
 

Flown

Administrator
Mitarbeiter
Mal ein wenig Pseudocode:
Code:
prerequisite: int[] arr; //length: n, range: [0, n[
def sum(int[] arr) : int {
  int sum = 0;
  for(i ... 1 to n - 2) {
    int value = arr[i];
    if(arr[i - 1] != value && value != arr[i + 1]) {
      sum += value;
    }
  }
  return sum;
}
 

Neue Themen


Oben