27.移除元素

给定一个数组和一个值,在这个数组中原地移除指定值和返回移除后新的数组长度。

不要为其他数组分配额外空间,你必须使用 O(1) 的额外内存原地修改这个输入数组。

元素的顺序可以改变。超过返回的新的数组长度以外的数据无论是什么都没关系。

示例:

给定 nums = [3,2,2,3],val = 3,

你的函数应该返回 长度 = 2,数组的前两个元素是 2
int removeElement(vector<int>& nums, int val){
    int size=nums.size();
    if(size==0){
        return 0;
    }
    int i_count=0;
    for(int i=0;i<size;i++){
        if(val==nums[i]){
            continue;
        }
        else{
            nums[i_count++]=nums[i];
        }
    }
    return i_count;
}

思路:移除指定元素与删除重复元素本质上都是删除元素二者思路一样,移除指定元素只需要用非指定元素覆盖掉指定元素即可!

posted @ 2018-04-10 15:24  down_to_earth  阅读(128)  评论(0编辑  收藏  举报