给定一个数组和一个值,在这个数组中原地移除指定值和返回移除后新的数组长度。
不要为其他数组分配额外空间,你必须使用 O(1) 的额外内存原地修改这个输入数组。
元素的顺序可以改变。超过返回的新的数组长度以外的数据无论是什么都没关系。
示例:
给定 nums = [3,2,2,3],val = 3, 你的函数应该返回 长度 = 2,数组的前两个元素是 2。
int removeElement(vector<int>& nums, int val){ int size=nums.size(); if(size==0){ return 0; } int i_count=0; for(int i=0;i<size;i++){ if(val==nums[i]){ continue; } else{ nums[i_count++]=nums[i]; } } return i_count; }
思路:移除指定元素与删除重复元素本质上都是删除元素二者思路一样,移除指定元素只需要用非指定元素覆盖掉指定元素即可!