⭐️ 题目描述
🌟 leetcode链接:移除元素
代码:
/*
思路:双指针问题
[3,2,2,3] , val = 3
src
-> [ 3 , 2 , 2 , 3 ]
dest
nums[src] == val => src++
src
-> [ 3 , 2 , 2 , 3 ]
dest
nums[src] != val => nums[dest++] = nums[src++];
src
-> [ 2 , 2 , 2 , 3 ]
dest
nums[src] != val => nums[dest++] = nums[src++];
src
-> [ 2 , 2 , 2 , 3 ]
dest
nums[src] == val => src++
-> 循环结束
result: [2 , 2] , dest = 2
*/
int removeElement(int* nums, int numsSize, int val){
int src = 0;
int dest = 0;
while (src < numsSize) {
if (nums[src] == val) {
src++;
} else {
nums[dest++] = nums[src++];
}
}
return dest;
}