Сложность: easy
Учитывая массив nums и значение val, удалите все вхождения val на месте. Порядок элементов может быть изменён. Верните количество элементов k, которые не равны val, и убедитесь, что первые k элементов массива содержат именно эти значения.
Пример:
Input: nums = [3,2,2,3], val = 3 Output: 2
👨💻Алгоритм:
1⃣Заводим указатель k для отслеживания позиции следующего "валидного" элемента.
2⃣Проходим по массиву: если текущий элемент не равен val, записываем его на позицию k и увеличиваем k.
3⃣После цикла k будет содержать количество элементов, не равных val.
😎 Решение:
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int k = 0;
for(int i = 0; i < nums.size(); i++) {
if(nums[i] != val) {
nums[k] = nums[i];
k++;
}
}
return k;
}
};Ставь 👍 и забирай 📚 Базу знаний