Articles of Algorithmus

Generieren aller möglichen Permutationen einer Liste rekursiv

Ich versuche rekursiv alle Elemente in einer Liste rekursiv zu generieren. Ich habe ein paar Lösungen zu ähnlichen Fragen gesehen, aber ich konnte meinen Code nicht zum Laufen bringen. Könnte jemand darauf hinweisen, wie ich meinen Code reparieren kann? Dies ist offen für alle S / O’ers, nicht nur für Java-Leute. (Auch sollte ich beachten, […]

LRU-Cache-Design

Least Recently Used (LRU) Cache dient dazu, die zuletzt verwendeten Elemente zuerst zu vercasting. Wie entcasting und implementieren Sie eine solche Cache-class? Die Designanforderungen lauten wie folgt: 1) Finde den Gegenstand so schnell wie möglich 2) Sobald ein Cache verfehlt und ein Cache voll ist, müssen wir das am längsten nicht verwendete Element so schnell […]

Backtracking in einem Stern

Blaue Wände Grün markierte Zellen = offene Liste Rot Hervorgehobene Zellen = geschlossene Liste Hallo, kann mir jemand sagen, wie kann ich Backtracking in einem Stern Suchalgorithmus implementieren? Ich habe die a-Sterne-Suche nach Wiki implementiert, aber es geht nicht zurück, was ich mit backtrack meine, dass die offene Liste (grüne Zellen) 2,0 und 3,3 enthält, […]

In einem sortierten und rotierten Array suchen

Während ich mich auf ein technisches Interview vorbereitet habe, bin ich auf diese interessante Frage gestoßen: Ihnen wurde ein Array zugewiesen, das sortiert und dann gedreht wird. Beispiel Sei arr = [1,2,3,4,5] was sortiert und dann zweimal nach rechts gedreht wird um zu geben [4,5,1,2,3] Wie kann man nun in diesem sortierten + gedrehten Array […]

Finden Sie effizient binäre Strings mit geringer Hamming-Distanz im großen Set

Problem: Bei einer großen (~ 100 Millionen) Liste von vorzeichenlosen 32-Bit-Ganzzahlen, einem vorzeichenlosen 32-Bit-Ganzzahleingabewert und einer maximalen Hamming-Distanz geben Sie alle Listenelemente zurück, die innerhalb der angegebenen Hamming-Distanz des Eingabewerts liegen. Tatsächliche Datenstruktur, um die Liste zu halten, ist offen, performancesanforderungen diktieren eine In-Memory-Lösung, Kosten für den Aufbau der Datenstruktur ist sekundär, niedrige Kosten für […]

Warum verwenden wir Base64?

Wikipedia sagt Base64-Kodierungsschemata werden häufig verwendet, wenn Binärdaten codiert werden müssen, die gespeichert und über Medien übertragen werden müssen, die für die Verarbeitung von Textdaten ausgelegt sind. Dies stellt sicher, dass die Daten während des Transports unverändert bleiben. Aber ist es nicht so, dass Daten immer binär gespeichert / übertragen werden, weil der Speicher, den […]

Skip List vs. Binärsuchbaum

Ich bin kürzlich auf die Datenstruktur gestoßen, die als Skip-Liste bekannt ist . Es scheint sich sehr ähnlich zu einem binären Suchbaum zu verhalten. Warum sollten Sie jemals eine Überspringen-Liste über einen binären Suchbaum verwenden?

Wie wähle ich zwischen einer Hash-Tabelle und einem Trie (Präfixbaum)?

Wenn ich also zwischen einer Hash-Tabelle oder einem Präfix-Baum wählen muss, was sind die diskriminierenden Faktoren, die dazu führen würden, dass ich eines über das andere wähle? Aus meiner eigenen naiven Sichtweise scheint es, als ob die Verwendung eines Trie einen zusätzlichen Overhead hat, da es nicht als Array gespeichert ist, sondern in Laufzeit (unter […]

Wie kann man feststellen, ob der Binärbaum ausgewogen ist?

Es ist eine Weile her seit diesen Schuljahren. Hat einen Job als IT-Spezialist in einem Krankenhaus bekommen. Ich versuche, mich zu bewegen, um jetzt etwas zu programmieren. Ich arbeite jetzt an binären Bäumen, und ich fragte mich, was wäre der beste Weg, um zu bestimmen, ob der Baum in der Höhe ausgeglichen ist. Ich dachte […]

Wie vergleicht man zwei Formen?

Gibt es eine Möglichkeit, zwei geometrische Formen (oder zwei allgemeinere Datenstrukturen) zu vergleichen, ohne die rohe Gewalt anzuwenden, wenn eine Toleranz involviert ist? Die rohe Gewalt (die jeden Wert jedes Objekts mit jedem Wert des anderen Objekts vergleicht) funktioniert, aber es ist langsam, und ich kann es nicht verwenden. Ich habe versucht, die Daten zu […]