[LeetCode]27.RemoveElement

27. Remove Element

创新互联专业为企业提供南宁网站建设、南宁做网站、南宁网站设计、南宁网站制作等企业网站建设、网页设计与制作、南宁企业网站模板建站服务,十多年南宁做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

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.

Example:
Given input array nums = [3,2,2,3]val = 3

Your function should return length = 2, with the first two elements of nums being 2.

题意:

根据给定一个数组和一个关键值,删除数组所有与关键值一样的元素,并返回新的数组长度。


解题:

逐一遍历数组元素,逐个比较,进行操作。

1)如果数组中元素值一致时,只需要将数组长度减一;否则,把cnt中下标元素赋值给index的位置。因为如果中间出现给定值时,覆盖掉该位置值。

int removeElement(int* nums, int numsSize, int val)
{
    int cnt   = 0;
    int size  = numsSize;
    int index = 0;
    for ( cnt = 0; cnt < numsSize; cnt++ )
    {
        if ( *(nums + cnt) != val )                                               {
            *(nums + index) = *(nums + cnt);
            index++;
        }
        else
        {
            size -= 1;
        }
    }
    
    if ( index != numsSize )
    {   
        *(nums + index) = '\0';
    }
    
    return size;
}

网站名称:[LeetCode]27.RemoveElement
浏览地址:http://csruizhi.cn/article/igsced.html

其他资讯

Copyright © 2007-2024 成都优众联杰科技有限公司 All Rights Reserved 蜀ICP备2024116266号
友情链接: 重庆网站建设 成都模版网站建设 成都网站建设 成都网站设计 企业网站设计 达州网站设计 成都网站制作 成都网站建设公司 成都网站设计 成都网站设计 成都定制网站建设 网站建设方案 高端网站设计推广 网站建设费用 成都网站制作 LED网站设计方案 温江网站设计 成都营销网站制作 成都网站设计公司 成都网站设计 网站建设公司 成都网站建设