我们有一个算法刷题群,每周群主会安排 4 道题,节假日没标题。想要一起刷题的小伙伴能够加我微信 zzh0838
标题描绘
一切解法均在无参考情况下手写,机打了一遍:
暴力法
int removeElement(vector<int> &nums, int val) {
int size = nums.size();
for (int i = 0; i < size; i) {
if (nums[i] == val) {
for (int j = i; j < size - 1; j) {
nums[j] = nums[j 1];
}
i--;
size--;
}
}
return size;
}
双指针法
int removeElement(vector<int>& nums, int val) {
int slow = 0;
int fast = 0;
int size = nums.size();
for(fast = 0; fast < size; fast ) {
if(nums[fast] != val) {
nums[slow] = nums[fast];
slow ;
}
}
return slow;
}
双指针优化
int removeElement(vector<int>& nums, int val) {
int left = 0, right = nums.size() - 1;
while(left < right) {
if(nums[left] == val) {
num[left] = nums[right];
right--;
} else {
left ;
}
}
return left;
}