Ich habe ein sequenzielles ungeradzahliges Array beginnend bei 3. So x = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ...}. Ich frage mich, ob es einen schnellen Weg gibt zu finden, bei welchem Index das Quadrat einer Zahl n ist. Also, wenn n 5 ist, suche ich, wo 25 im Array ist. Gerade jetzt habe ich ((n) * (n - 1)) was ich dem aktuellen i Index hinzufüge. Gibt es etwas schneller?Das Quadrat einer Zahl in einem sequentiellen Array von Wahrscheinlichkeiten finden
0
A
Antwort
0
Ihr Array besteht aus aufeinander folgenden Zahlen gemacht und es sortiert ist, weil es dafür bildet eine mathematische arithmetische Progression mit Differenz 1 und die ersten Elemente als 3, so bei Index i
wir a[i]=i+3
und so i=a[i]-3
haben.
So den Index des Platzes von n
zu finden nsqr
n*n
sein lassen, nsqr Index ist einfach nsqr-3
, das ist ein O(1)
Algorithmus.
Um es allgemein zu machen, wenn wir aufeinander folgenden sortierten Zahlen haben, die mit a0
und unterscheiden sich von d
beginnen, um herauszufinden, wo der Platz von n
ist wir (nsqr-a0)/d
tun.
Verwandte Themen
- 1. Suche Quadrat einer Zahl
- 2. Suche fehlt ganze Zahl in einem sequentiellen sortiert Strom
- 3. jdbc Programm das Quadrat einer Zahl unter Verwendung von aufrufbaren Anweisung zu finden (Stored Procedure)
- 4. Diagonale einer Zahl im 2D-Array finden?
- 5. Das fehlende Element in einem Array finden
- 6. die minimale eindeutige Zahl in einem Array zu finden
- 7. Finden der am meisten wiederholten Zahl in einem Array C++
- 8. Ändern von Pixelwerten in einem 50x50 Quadrat 2d Numpy Array
- 9. Suchen einer maximalen Zahl in einem Array in JavaScript
- 10. zu finden, wenn es eine Zahl in einem Array ist, das mehr als n/8-mal
- 11. Finden der ganzen Zahl einer Zahl
- 12. Finden einer Übereinstimmung in einem Array-Feld
- 13. die niedrigste Zahl in einem Array zu finden, aber das Überspringen Null
- 14. Kubikwurzel einer großen Zahl finden
- 15. Finding max Zahl einer Zeile in einem 2D-Array
- 16. Finden Sie ein Paar Integer aus einem Array, das zu einer gegebenen Zahl in Java 8 mit Funktionen
- 17. zu finden, was ganze Zahl mit einem String in einem Array entspricht
- 18. Finden der nächsten ganzen Zahl aus einem Array, das aufgerundet wird
- 19. Wie man das gleiche Quadrat in einem einzigen glVertexPointer verschiebt
- 20. Finden der Quadratwurzel einer Zahl in C++
- 21. Ein Doppelpunkt vor einer Zahl in einem numplien Array
- 22. Das kleinste Quadrat bedeutet
- 23. Finden der größten Dezimalzahl für jede ganze Zahl in Array
- 24. Gefundene Bits einer ganzen Zahl finden
- 25. Finden Element in einem Array von Objekt
- 26. finden in einem PHP-Array
- 27. Wie lösche ich eine Zahl aus einem Array, das in einem anderen Array enthalten war?
- 28. Teilen einer Zahl und Zuweisen von Elementen in einer Reihe in einem numply-Array
- 29. Das größte Quadrat weniger als eine gegebene Anzahl in Java finden
- 30. Blaues Quadrat um das Menü
Verwenden Sie binäre Suchalgorithmus, O (log n) Komplexität – bigbounty
dieses Array ist kein Array von Chancen, es beginnt nur mit einer ungeraden Zahl, trotzdem ist das Array immer aus aufeinanderfolgenden Nummern gebaut? wenn nicht, wird es immer sortiert? – niceman
@niceman es wird immer aus fortlaufenden Nummern gebaut und immer in aufsteigender Reihenfolge sortiert – user7252850