Sobes.tech
Junior — Middle

Wie kann man ein beliebiges Element aus einem Array (Vektor) in konstanter Zeit entfernen, wenn die Reihenfolge der Elemente keine Rolle spielt?

sobes.tech KI

Antwort von AI

Wenn die Reihenfolge der Elemente im Array (Vektor) nicht wichtig ist, kann man ein beliebiges Element in konstanter Zeit entfernen, indem man das zu entfernende Element durch das letzte Element des Arrays ersetzt und dann die Größe des Arrays um 1 verringert.

Dadurch wird das Verschieben aller nachfolgenden Elemente vermieden, was in der Regel lineare Zeit in Anspruch nimmt.

Beispiel in C++:

#include <vector>

void removeAt(std::vector<int>& vec, size_t index) {
    if (index >= vec.size()) return;
    vec[index] = vec.back(); // ersetzt das zu entfernende Element durch das letzte
    vec.pop_back();          // entfernt das letzte Element
}