描述:
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.
代码1:
// LeetCode, Remove Element
// ????? O(n)?????? O(1)
class Solution {
public:
int removeElement(vector<int>& nums, int target) {
int index = 0;
for (int i = 0; i < nums.size(); ++i) {
if (nums[i] != target) {
nums[index++] = nums[i];
}
}
return index;
}
};
代码2:
// LeetCode, Remove Element
// ?? remove()?????? O(n)?????? O(1)
class Solution {
public:
int removeElement(vector<int>& nums, int target) {
return distance(nums.begin(), remove(nums.begin(), nums.end(), target));
}
};
remove()函数解析参考博客:
https://blog.csdn.net/chenglove1314/article/details/39137067