class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int j = 0;
for (int i = 0; i < nums.size(); i++) {
// 当前元素不等于val时,才执行操作
if (nums[i] != val) {
// 仅当i和j不相等时才进行交换
// 这可以减少在nums[i]已经在正确位置时的不必要交换
if (i != j) {
nums[j] = nums[i];
}
j++;
}
}
return j; // 返回新的数组长度
}
};