2016-05-15 4 views
-2

Zum Beispiel habe ich dieses Array:Wie gebe ich Sequenzen in einem Array von Zahlen (int) in Java aus?

int[] a = {1,1,1,1,5,5,1,1,1}; 
//output: 4 2 3 

Mit anderen Worten, es wird die Sequenzen von der gleichen Nummer drucken. Ich habe dies bereits versucht:

int doubles_count_while (int a[][], int n, int cestatic) { 
    int result = 1; 
    while (result < n && a[result - 1][cestatic] == a[result][cestatic]) { 
     result++; 
    } 
    return result; 
} 

int doubles_groups(int a[][], int n, int cestatic, int b[]) { 
    int result = 0; 
    int i = 0; 
    while (i < n) { 
     int z = doubles_count_while(a, n-i, a[i][cestatic]); 
     b[result++] = z; i += z; 
    } 
    return result; 
} 
+0

Bitte formatieren Sie Ihren Code richtig. Inwiefern liefert Ihr Code noch nicht das richtige Ergebnis? – luk2302

+0

Sind Sie auf Java 8? – Kayaman

+0

Wenn Ihre Eingabe ein 'int []' sein soll, warum nehmen Ihre Methoden ein 'int [] []'? Ich meine, wenn Ihre Methode nicht einmal die Art von Daten akzeptiert, die Sie verarbeiten sollen, wie könnten Sie jemals davon abweichen, um nützlich zu sein? – Andreas

Antwort

2

Wenn Code veröffentlichen, fügen Sie es als MCVE veröffentlichen, so dass wir es tatsächlich laufen kann. Sie sollten uns auch sagen, was Sie erwarten, dass dieser Code und tut, was es stattdessen tut. Versuchen Sie, es auf eine einzelne Codezeile einzugrenzen, die nicht das tut, was Sie erwarten.

Das ist eine ziemlich breite Frage, aber ich werde versuchen, in einem allgemeinen Sinn zu helfen. Sie müssen einen Schritt zurücktreten und den Code für eine Sekunde vergessen. Schreiben Sie die Schritte Sie würde folgen, ohne einen Computer, wenn jemand Ihnen einen Stapel von Karteikarten mit Zahlen auf sie geschrieben und Sie gebeten, sie zu gruppieren. Wie genau würdest du das tun?

Tu so, als hättest du einen wirklich dummen Freund, der keine Ahnung hat, wie man die Karten gruppiert. Sie sollten in der Lage sein, Ihre Anweisungen an diesen Freund weiterzugeben und ihnen folgen zu lassen, um die Karten ohne Ihre Hilfe zu gruppieren. Denken Sie daran, wie dumm dieser Freund ist, also stellen Sie sicher, dass Ihre Anweisungen so klein wie möglich sind.

Wenn Sie diese Anweisungen ausgeschrieben haben, ist das ein Algorithmus, den Sie über die Implementierung mit Code nachdenken können. Der Versuch, in den Code einzutauchen, ohne eine klare Vorstellung davon zu haben, was er tun soll, wird Ihnen eine Menge Kopfschmerzen bereiten. Viel Glück.

Verwandte Themen