009-原地删除元素

2020-05-14  本文已影响0人  Woodlouse

描述

给定一个数字T和一个数组S,写一个函数删除S中的所有的T元素,返回删除后的新长度。

数组元素的顺序没有可以改变,也不用关心新长度之后的元素是什么内容。

分析

这是一个原地删除的问题,可以设定两个游标iindex

1,初始值:i=0; index=0; i标识当前要判断的值,index为数组的新长度;

2,判断逻辑:若S[i] != target,则S[index++]=S[i]; i++;,否则i++;

代码实现如下:

int removeElement(int A[], int n, int target)
{
    int index = 0;
    for(int i=0; i<n; i++){
        if (A[i] != target) {
            A[index++] = A[i];
        }
    }
    
    return index;
}

时间复杂度O(n)、空间复杂度为O(1)。


代码在这儿

上一篇 下一篇

猜你喜欢

热点阅读