LeetCode——————移除元素

LeetCode——————移除元素_第1张图片

LeetCode——————移除元素_第2张图片

 方法:双指针

  • 通过题目得知,我们要删除掉数组中等于val的元素,我们可以通过双指针来实现,定义2个指针,一个left和一个right,我们让left和right同时指向第一个元素。
  • 如果左指针等于val,,我们就可以将left自增1,指向下一个值。如图

LeetCode——————移除元素_第3张图片

LeetCode——————移除元素_第4张图片

 当我们nums【left】不等于val时,我们就可以把nums【left】的值给给nums【right】,然后left和right都自增1,同时指向下一个数,同时我们也知道,输出数组的长度一定小于数组的长度,可以用循环来实现,即while(left

 LeetCode——————移除元素_第5张图片LeetCode——————移除元素_第6张图片

  • 代码如下:
int removeElement(int* nums, int numsSize, int val)
{
    int left =0;
    int right =0;
    while(left

 LeetCode——————移除元素_第7张图片

 总结:今天的分享就到这里了,如果对这道题有兴趣的,可以尝试尝试。网址:https://leetcode-cn.com/problems/remove-element/

如果觉得写的还可以的,点赞加关注哦,我会不定时的和大家进行学习,探讨。 

你可能感兴趣的:(leetcode,数据结构,算法)