1.题目描述
2.思路讲解
这题我们使用双指针技巧,一个指针去移动遍历数组,发现不等于val的数,就把值赋给另一个指针(作为下标),同时该指针加一,在接着去遍历整个数组。遍历结束时,此时被动移动指针的值就是新数组的长度.
3.代码展示
int removeElement(int* nums, int numsSize, int val){
int left=0;
for(int right=0;right<numsSize;right++)
{
if(nums[right]!=val)
{
nums[left]=nums[right];
left++;
}
}
return left;
}
4.总结
这题说实话,我也没有想到去使用双指针,一开始用的排序,结果在移动数组时会有很多问题。
唉,还是自己太菜了。希望自己下次能想到用双指针