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

相关推荐

  • 关于爱情的英语句子,求一些英文的关于爱情的短句子。

    技术关于爱情的英语句子,求一些英文的关于爱情的短句子。哈哈这个我知道关于爱情的英语句子,我帮你吧~ 1我的世界不允许你的消失,不管结局是否完美. No matter the ending is perfect or no

    生活 2021年10月25日
  • 如何使用sklearn进行数据挖掘

    技术如何使用sklearn进行数据挖掘今天就跟大家聊聊有关如何使用sklearn进行数据挖掘,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.1 数据挖掘的步骤 

    攻略 2021年11月2日
  • eolinkerhttp接口测试(eolinker测试本地接口插件)

    技术使用EOLINKER进行接口测试的最佳路径是什么这期内容当中小编将会给大家带来有关使用EOLINKER进行接口测试的最佳路径是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。内容

    攻略 2021年12月24日
  • 元宇宙的定义是什么

    技术元宇宙的定义是什么这篇文章主要讲解了“元宇宙的定义是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“元宇宙的定义是什么”吧! 元宇宙的定

    攻略 2021年11月2日
  • 双指针技巧总结

    技术双指针技巧总结 双指针技巧总结https://labuladong.gitee.io/algo/2/21/53/读完本文,你不仅学会了算法套路,还可以顺便去 LeetCode 上拿下如下题目:
    14

    礼包 2021年11月12日
  • 如何使用数据库迁移神器Flyway

    技术如何使用数据库迁移神器Flyway本篇内容介绍了“如何使用数据库迁移神器Flyway”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,

    攻略 2021年10月22日