我是靠谱客的博主 冷艳绿草,最近开发中收集的这篇文章主要介绍Leetcode - 27. 移除元素题目描述:思路梳理:在一个数组之中存在与val相同的元素,此时需要将其他相同的val给消除掉,那么我们可以使用一种方法来将他们覆盖,下面是具体思路。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

题目描述:

思路梳理:在一个数组之中存在与val相同的元素,此时需要将其他相同的val给消除掉,那么我们可以使用一种方法来将他们覆盖,下面是具体思路。

需求:消除数组中其他重复的2

1、先定义一个数组:,在定义两个下标(哨兵作用),此处的下标是为了后面更好地覆盖数组中重复元素的哨兵。

2、我们看见src和dest指向的位置都是最初的位置下标为0,那么src和dest所指向的并不是我们需要消除的元素,那就让nums[dest] = nums[src] (此处的赋值覆盖就是为了后面更方便的覆盖重复元素,记住这个操作,当src和dest每一次指向的元素都不是目标元素val = 2的时候,就操作一次)   ,再让src++,dest++。

 3、此时我们发现src和dest指向的元素都是我们的目标元素2,我们此时想要覆盖这里出现的元素2,我们让src++,dest不变,为了就是然src继续往后面走,走到一个nums[src] != val的时候,再去直接覆盖它之前的dest的位置,这样大大节省了我们的覆盖效率,此时nums[src] != val,那么此时我们就可以重复第2个步骤的操作,nums[dest] = nums[src] , dest++ , src++;

4、此时我们看到覆盖之后的结果:此时src又和dest重叠在一起,此时nums[src] != val,那就继续执行操作步骤2,让他两继续前进....

5、直到.....此时Nums[src] == val的时候,我们需要让src++,dest不动,

 6、直到src++到数组的尽头,直到他发现自己已经跳出这个数组的长度范畴,此时就跳出循环,直接返回dest,我们最终获得的数组那不就是[1,3,3,5,2],是不是消除了其他与2重复的元素了呢?


题目描述:

思路梳理:在一个数组之中存在与val相同的元素,此时需要将其他相同的val给消除掉,那么我们可以使用一种方法来将他们覆盖,下面是具体思路。

需求:消除数组中其他重复的2

1、先定义一个数组:,在定义两个下标(哨兵作用),此处的下标是为了后面更好地覆盖数组中重复元素的哨兵。

2、我们看见src和dest指向的位置都是最初的位置下标为0,那么src和dest所指向的并不是我们需要消除的元素,那就让nums[dest] = nums[src] (此处的赋值覆盖就是为了后面更方便的覆盖重复元素,记住这个操作,当src和dest每一次指向的元素都不是目标元素val = 2的时候,就操作一次)   ,再让src++,dest++。

 3、此时我们发现src和dest指向的元素都是我们的目标元素2,我们此时想要覆盖这里出现的元素2,我们让src++,dest不变,为了就是然src继续往后面走,走到一个nums[src] != val的时候,再去直接覆盖它之前的dest的位置,这样大大节省了我们的覆盖效率,此时nums[src] != val,那么此时我们就可以重复第2个步骤的操作,nums[dest] = nums[src] , dest++ , src++;

4、此时我们看到覆盖之后的结果:此时src又和dest重叠在一起,此时nums[src] != val,那就继续执行操作步骤2,让他两继续前进....

5、直到.....此时Nums[src] == val的时候,我们需要让src++,dest不动,

 6、直到src++到数组的尽头,直到他发现自己已经跳出这个数组的长度范畴,此时就跳出循环,直接返回dest,我们最终获得的数组那不就是[1,3,3,5,2],是不是消除了其他与2重复的元素了呢?

 代码实现如下:

int removeElement(int* nums, int numsSize, int val){
    int src = 0;
    int dest = 0;
    while(src < numsSize){
        if(nums[src] != val){
             nums[dest] = nums[src];
             dest++;
             src++;

        }else{
            src++;
        }
    }
    return dest;

}

 

好了,本期就分享到这里,更多的知识干货关注我!带你刷爆leetcode,勇闯天涯!

 

 

最后

以上就是冷艳绿草为你收集整理的Leetcode - 27. 移除元素题目描述:思路梳理:在一个数组之中存在与val相同的元素,此时需要将其他相同的val给消除掉,那么我们可以使用一种方法来将他们覆盖,下面是具体思路。的全部内容,希望文章能够帮你解决Leetcode - 27. 移除元素题目描述:思路梳理:在一个数组之中存在与val相同的元素,此时需要将其他相同的val给消除掉,那么我们可以使用一种方法来将他们覆盖,下面是具体思路。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部