Junior — Middle
Как може да се премахне произволен елемент от масив (вектор) за постоянен време, ако редът на елементите не е важен?
sobes.tech AI
Отговор от AI
Ако редът на елементите в масива (вектора) не е важен, можете да премахнете произволен елемент с постоянна сложност, като го замените с последния елемент на масива и след това намалите размера на масива с 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(); // премахва последния елемент
}