array aufgabe

  • Themenstarter Themenstarter Heyoka955
  • Beginndatum Beginndatum
H

Heyoka955

Gast
Hallo und schönen Tag, ich habe ein kleines Problem,

also ich habe eine Aufgabe aufbekommen in der ich ein zwei Arrays übergeben bekomme und die Arrays sind auf eine Zahl alle identisch und meine Aufgabe ist es die eine Zahl zu printen, die im Teilarray nicht gegeben ist.

leider habe ich keine genaue Vorstellung, mein Ansatz sieht so aus.
Java:
public class Kata {
    public static int findDeletedNumber(int[] arr, int[] mixedArr) {
        int count = 0;
        
        
        for(int i = 0; i < arr.lengh; i++){
          for(int j = 0; j < mixedArr.length; j++){
            if(arr[i] == mixedArt[j]){
              count = arr[i];
              
            }
          
          
          
          }
        
        }
        
    }
}
 
Dazu fallen mir spontan zwei Interpretationen ein, hast Du mal ein Beispiel?
An ordered sequence of numbers from 1 to N is given. One number might have deleted from it, then the remaining numbers were mixed. Find the number that was deleted.

Example:

  • The starting array sequence is [1,2,3,4,5,6,7,8,9]
  • The mixed array with one deleted number is [3,2,4,6,7,8,1,9]
  • Your function should return the int 5.

If no number was deleted from the array and no difference with it, your function should return the int 0.

Note that N may be 1 or less (in the latter case, the first array will be []



die aufgabe ist aus codewars
 
Dazu fallen mir spontan zwei Interpretationen ein, hast Du mal ein Beispiel?

schau habe einen neuen ansatz gefunden, ich könte die beiden als ein array zusammenfassen und dann die datenstruktur set verwenden. Dadurch wäre es möglich ale duplikate zu enfernen und letztendlich die 5zu bekommen?
 
Dazu brauchst Du aber die beiden nicht zu einem Array zusammen zu fassen: Du hast zwei Sets, entfernst eines aus dem anderen und schaust, was übrig bleibt.
 
Dazu brauchst Du aber die beiden nicht zu einem Array zusammen zu fassen: Du hast zwei Sets, entfernst eines aus dem anderen und schaust, was übrig bleibt.
jo habe die aufgabe geschafft, also ich habe nr den zweiten Array in ein set "gewandelt". bin bei der nächsten aufgabe dran. habe mir vorgenommen tägich 3 aufgaben zu programmieren.
 
Dein Ansatz ist nicht schlecht. Du musst einfach die beiden Arrays miteinander mit einer for-schleife laufen lassen. Mit einem if-befehl oder einer switch-case(eher unnötig) kannst du überprüfen, ob die werte der Arrays gleich sind oder nicht. Wenn nicht, dann musst du dies natürlich aufzeichnen.
 
Es gibt zig Möglichkeiten das Problem zu lösen. Aufzeichnen muss er allerdings nichts, da sich die Arrays in maximal einem Element unterscheiden 🙂
 
Dein Ansatz ist nicht schlecht. Du musst einfach die beiden Arrays miteinander mit einer for-schleife laufen lassen. Mit einem if-befehl oder einer switch-case(eher unnötig) kannst du überprüfen, ob die werte der Arrays gleich sind oder nicht. Wenn nicht, dann musst du dies natürlich aufzeichnen.
Das würde nur gehen wenn die Arrays sortiert sind. Die Aufgabe sagt aber ein Array is mixed.
 
Mal ein anderer Ansatz:
Java:
return IntStream.of(arr).sum() - IntStream.of(mixedArr).sum();

Nachtrag: ließe sich optimieren, indem man für die erste Summe den kleinen Gauss befragt.
 
Gauß'sche Summenformel würde aber nur funktionieren, wenn es auch konsekutive Integers sind. Die Aufgabe sagt ja nur, dass sie sortiert sind, aber nicht, dass sie auch lückenlos sind.
 
Danke für den Hinweis. Das ist ggf. ein Interpretationsproblem für mich als non-native-speaker 🙂

Unter "ordered sequence of numbers from 1 to N" verstehe ich die geordnete Zahlenfolge von 1 bis N (= 1, 2, ..., N), also insbesondere auch N Elemente.

Dagegen hätte ich "ordered sequence of numbers between 1 and N" als "geordnete Folge von Zahlen zwischen 1 und N" aufgefasst, also eine "beliebige" Anzahl x von Elementen mit 1 <= a_i <= N für alle (EDIT: 1 <= i <= x und) x >= 1, sofern man Duplikate zulässt. Ohne Duplikate wäre natürlich 1 <= x <= N. In jedem Fall darf hier auch x < N gelten.
 
Ich bin mir da echt nicht sicher; das sind für mich Feinheiten des Englischen, insbesondere wenn es um Fachterminologie geht.
 

Zurück
Oben