Given an array and a value, remove all instances of that value in place and return the new length.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Subscribe to see which companies asked this question
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int length = nums.size();
int start = 0;
for(int i = 0; i < length; ++i)
{
if(nums[i] != val)
{
nums[start++] = nums[i];
}
}
return start;
}
};
通过一个start整形变量来记录新数组的长度,当不相等的时候,就把后面的元素覆盖到前面,从而最后形成新数组。在原位置变换。