这个题和上一个26题删除重复元素的题目有类似的地方,都可以用双指针解答 。
在看了题解之后发现这两个题目还有一个通用法,有时间必须学习一下。
和val相等的值就跳过,不相等的值赋给慢指针。
以下是用快慢指针的思想写的代码逻辑。
int removeElement(int* nums, int numsSize, int val){
int j=0;
for(int i=0;i<numsSize;i++){
if(nums[i]!=val){
nums[j]=nums[i];
j++;
}
}
return j;//如果没有上面的判断数组为空的if语句,在这里会直接返回空数组,因为数组的长度为0
}