class Solution {
public:
int removeElement(std::vector<int>& nums, int val) {
int slow = 0;
for (int fast = 0;fast<nums.size();fast++){
if (nums[fast]!= val) nums[slow++] = nums[fast];
}
return slow;
}
};
class Solution {
public:
int removeElement(std::vector<int>& nums, int val) {
int res = 0;
// 如果在for循环内初始化,slow是局部变量 最后不能return slow;
for (int fast = 0, slow = 0; fast < nums.size(); fast++){
if (nums[fast] != val) nums[slow++] = nums[fast];
res = slow;
}
return res;
}
};
// 正确
class Solution {
public:
int removeElement(std::vector<int>& nums, int val) {
int slow, fast =0;
for (slow=0; fast < nums.size(); fast++){
if (nums[fast] != val) nums[slow++] = nums[fast];
}
return slow;
}
};
// 错误
class Solution {
public:
int removeElement(std::vector<int>& nums, int val) {
int slow;
for (int fast =0, slow=0; fast < nums.size(); fast++){
if (nums[fast] != val) nums[slow++] = nums[fast];
}
return slow;
}
};