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

相关推荐

  • 手机怎么拍一寸照片,自拍照如何做成一寸证件照

    技术手机怎么拍一寸照片,自拍照如何做成一寸证件照第一步,先打开手机上面的微信,点击下方的“发现”即可手机怎么拍一寸照片。在微信“发现”页面点击“小程序”,并且在输入框内输入证件照。此时,点击手机页面的证件照生成器进入就可

    生活 2021年10月30日
  • pkg安装包制作软件Packages for Mac是怎么样的

    技术pkg安装包制作软件Packages for Mac是怎么样的小编给大家分享一下pkg安装包制作软件Packages for Mac是怎么样的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读

    攻略 2021年11月18日
  • 怎么优化SQL代码

    技术怎么优化SQL代码这篇文章主要介绍“怎么优化SQL代码”,在日常操作中,相信很多人在怎么优化SQL代码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么优化SQL代码”的疑惑有所帮助!

    攻略 2021年11月12日
  • C语言中如何求两个矩阵的乘积

    技术C语言中如何求两个矩阵的乘积这篇文章将为大家详细讲解有关C语言中如何求两个矩阵的乘积,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。分析在数学中,矩阵(Matrix)是

    攻略 2021年11月11日
  • 如何解决jvm内存溢出java.lang.OutOfMemoryError: GC overhead limit exceeded问题

    技术如何解决jvm内存溢出java.lang.OutOfMemoryError: GC overhead limit exceeded问题如何解决jvm内存溢出java.lang.OutOfMemoryError: GC

    攻略 2021年10月23日
  • 如何使用Bytom-Mobile-Wallet-SDK?

    技术Bytom-Mobile-Wallet-SDK的使用方法是什么这篇文章主要介绍“Bytom-Mobile-Wallet-SDK的使用方法是什么”,在日常操作中,相信很多人在Bytom-Mobile-Wallet-SD

    攻略 2021年12月20日