Junior — Middle
Kako se može ukloniti proizvoljan element iz niza (vektora) u konstantnom vremenu, ako redosled elemenata nije važan?
sobes.tech АИ
Одговор од АИ
Ако редоследот на елементите во масивот (векторот) не е важен, можете да отстраните произволен елемент во константно време, заменувајќи го отстранетиот елемент со последниот елемент од масивот и потоа намалувајќи ја големината на масивот за 1.
Ова избегнува поместување на сите следни елементи, што обично бара линерно време.
Пример во C++:
#include <vector>
void removeAt(std::vector<int>& vec, size_t index) {
if (index >= vec.size()) return;
vec[index] = vec.back(); // заменува го отстранетиот елемент со последниот
vec.pop_back(); // го отстранува последниот елемент
}