题目:
Given an array and a value, remove all instances of that value in place and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Example:
Given input array nums = [3,2,2,3]
, val = 3
Your function should return length = 2, with the first two elements of nums being 2.
题目意思:
给一个数组,和一个val 把数组里值为val的数移除后,该数组的大小为多少。
思想:
使用stl vector库里面的erase函数,注意移除 遍历要从后往前遍历
代码:time:O(n) space O(1)class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int len=nums.size();
if(len<=0)
return 0;
for(int i=len-1;i>=0;i--){
if(nums[i]==val){
nums.erase(nums.begin()+i);
}
}
return nums.size();
}
};