《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)

相关推荐

  • 如何理解ARM处理异常

    技术如何理解ARM处理异常本篇内容主要讲解“如何理解ARM处理异常”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解ARM处理异常”吧! 一、异常(Exception)异

    攻略 2021年10月21日
  • 如何进行JavaScript数据扁平化分析

    技术如何进行JavaScript数据扁平化分析如何进行JavaScript数据扁平化分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是

    攻略 2021年12月4日
  • 解决在PDF文档中复制代码报错问题

    技术解决在PDF文档中复制代码报错问题 解决在PDF文档中复制代码报错问题现在我们做学习笔记最好用的就是markdown,笔记做好以后可以导出PDF文档,但是当我们复制PDF文档的代码直接拷贝到 IDE

    礼包 2021年12月10日
  • MYSQL中COLLATE有什么用

    技术MYSQL中COLLATE有什么用这篇文章给大家分享的是有关MYSQL中COLLATE有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 MYSQL中的CO

    攻略 2021年10月27日
  • 如何将MP3格式的音乐转换成WAV格式

    技术如何将MP3格式的音乐转换成WAV格式这篇文章主要为大家展示了“如何将MP3格式的音乐转换成WAV格式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何将MP3格式的音乐

    攻略 2021年10月30日
  • DM-表空间

    技术DM-表空间 DM-表空间DM表空间表空间
    表空间由一个或者多个数据文件组成。
    在创建 DM 数据库时,会自动创建 5 个表空间:SYSTEM 表空间、ROLL 表空间、MAIN 表空间、TEMP

    礼包 2021年10月19日