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