Ich pflege ein Array von ganzen Zahlen. Es ist wichtig, dass zu jeder Zeit die Ganzzahlen in diesem Array in der Reihenfolge von 0 sind. Zum Beispiel, wenn es 5 ganze Zahlen im Array gibt, müssen ihre Werte 0, 1, 2, 3, 4 sein (obwohl in beliebiger Reihenfolge).Überprüfen einer Reihe von Zahlen auf Konsistenz
Ich möchte eine einfache, effiziente Methode entwerfen, die dies überprüft. Es gibt true zurück, wenn das Array alle positiven ganzen Zahlen in Folge enthält 0 bis array.count - 1.
Ich würde gerne ein paar andere Ideen für den Umgang mit dieser hören!
Wenn Sie * sicher * sein müssen, können Sie nichts besseres machen, als jedes Element im Array durchzugehen und zu überprüfen. Zählen Sie also einfach von 0 bis zur Länge des Arrays minus eins, und überprüfen Sie, ob in der Position "i" des Arrays tatsächlich der Wert "i" steht. (Die einzige "Optimierung" besteht darin, false zurückzugeben, wenn Sie auf ein Element stoßen, das nicht das ist, was es sein sollte, anstatt die Zählung fortzusetzen). Edit: Oh und, Mathias macht einen guten Punkt: Was ist der Sinn dieses Array zu halten? Sie wissen gut, wie man jede natürliche Zahl unter "n" berechnet, also warum sie alle gespeichert halten? – gspr
Wofür verwenden Sie das Array? Wäre es nicht einfacher, die obere Grenze des Arrays beizubehalten und über Ganzzahlen zu iterieren? – Mathias
Ich verwende das Array, um eine Tabellenansicht zu füllen. Die Nummern sind Sortierreihenfolgen. Ich lehne Elemente auf verschiedene Arten in und aus Abschnitten ab und möchte nur eine Methode, die sicherstellt, dass ich die Sortierreihenfolgen richtig einstelle, so dass nach dem Verschieben eines Elements in einen Abschnitt keine Lücken entstehen usw. Ich werde posten was ich gerade mache - ich denke es passt zu deinen Vorschlägen. Ich habe mich nur gefragt, ob es einen schlaueren Weg gab (ich habe versucht, die Zahlen zu addieren und zum Beispiel mit einer Fibonacci-Sequenz zu vergleichen - wäre wahrscheinlich nicht so effizient, könnte aber Spaß machen). –