删除元素-LintCode

来源:互联网 发布:淘宝优惠券制作教程 编辑:程序博客网 时间:2024/06/05 10:10

给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。
元素的顺序可以改变,并且对新的数组不会有影响。
样例
给出一个数组 [0,4,4,0,0,2,4,4],和值 4
返回 4 并且4个元素的新数组为[0,0,0,2]

#ifndef C172_H#define C172_H#include<iostream>#include<vector>using namespace std;class Solution {public:    /**    *@param A: A list of integers    *@param elem: An integer    *@return: The new length after remove    */    int removeElement(vector<int> &A, int elem) {        // write your code here        int len = A.size();        if (len <= 0)            return 0;        int i = 0;        while (i < len)        {            if (A[i] != elem)            {                ++i;            }            else            {                A.erase(A.begin() + i);                --len;            }        }        return A.size();    }};#endif