数组(10):Remove Element

描述:
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

猜你喜欢

转载自blog.csdn.net/rookiemonkey/article/details/80185565