题目: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.
这题比较简单,因为对删除value后的数组没有要求,只要知道数组大小即可以。思路就是把不等于value的元素全部从前放入数组中,用下标index标记元素个数,即删除value后的数组尺寸。
class Solution { public: int removeElement(vector<int>& nums, int val) { int index = 0; for (vector<int>::iterator iter = nums.begin(); iter != nums.end(); ++iter) { if (*iter != val) nums[index++] = *iter; } return index; } };
时间: 2024-10-14 00:52:58