题目描述:(链接)
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.
解题思路:
使用前后两个指针i和j,j负责遍历数组,i复制记录当前数组长度,如果j不等于指定值,将j指向的值赋值给i++位置.
class Solution { public: int removeElement(vector<int>& nums, int val) { int i = 0; int j = 0; for (; j < nums.size(); ++j) { if (nums[j] != val) { nums[i++] = nums[j]; } } return i; } };