《LeetCode刷题笔记》Day3——删除元素

技术《LeetCode刷题笔记》Day3——删除元素 《LeetCode刷题笔记》Day3——删除元素给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组

《LeetCode刷题笔记》 Day3——删除元素

给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。

这种问题是要用双指针方法的。

首先在前面定义一个快指针,然后在后面定义一个慢指针。如果快指针没有扫过Val元素,则前进一个空格,慢指针的值等于快指针和慢指针;

如果快速指针扫过Val元素,则慢速指针不会移动。但是后来,慢指针的值等于快指针的值,只少了一步。

例如

for(slowendex=0;fastIndex nums.lengthfast index){ 0

if (nums[fastIndex]!=val){ 0

nums[slowendex]=nums[FastIndex];

slowIndex

}

}

这里,每当快指针的扫描值不等于Val时,大家都会一起增加;

一旦Val值被扫描,快速指针继续向前移动,而慢速指针不移动,并且没有nums[slowendex]=nums[快速索引]和慢速索引。

但是,循环继续后,nums { slowendex }仍将等于nums[fastIndex]。不同的是slowIndex短了一步,这就是为什么慢指针和快指针是分开的。

最后一个输出慢速指针是删除的数组。

整体代码:

//时间复杂度:O(n)

//空间复杂度:O(1)

解决方案类{

公众号:

int removeElement(矢量nums,int val){ 0

int slowwindex=0;

for(int FastIndex=0;fast index nums . size();fast index){ 0

如果(瓦尔!=nums[fastIndex]) {

nums[slowendex]=nums[FastIndex];

}

}

返回slowIndex

}

};

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/149510.html

(0)

相关推荐

  • matplotlib如何设置坐标轴标签和间距

    技术matplotlib如何设置坐标轴标签和间距这篇文章给大家分享的是有关matplotlib如何设置坐标轴标签和间距的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。xlim、ylim我们首先来

    攻略 2021年10月31日
  • C语言是怎样输出唯一的子串

    技术C语言是怎样输出唯一的子串C语言是怎样输出唯一的子串,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 题目描述给一个字符串,求长度为m的所有不重复的子

    攻略 2021年12月8日
  • 如何进行分布式事务Seata Saga模式以及三种模式

    技术如何进行分布式事务Seata Saga模式以及三种模式如何进行分布式事务Seata Saga模式以及三种模式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,

    攻略 2021年10月20日
  • VSCode如何进行规范配置

    技术VSCode如何进行规范配置这篇文章主要介绍了VSCode如何进行规范配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用这些配置规范并格式化你的代

    攻略 2021年11月1日
  • mysql中授权和撤销授权等命令怎么用

    技术mysql中授权和撤销授权等命令怎么用小编给大家分享一下mysql中授权和撤销授权等命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧

    攻略 2021年10月29日
  • OpenTelemetry的相关知识点有哪些

    技术OpenTelemetry的相关知识点有哪些本篇内容主要讲解“OpenTelemetry的相关知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“OpenTelem

    攻略 2021年11月16日