LeetCode第二十七题-删除数组指定元素

Posted lalalaczq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode第二十七题-删除数组指定元素相关的知识,希望对你有一定的参考价值。

Remove Element

问题简介:给定数组nums和值val,在适当位置删除该值的所有实例并返回新长度.

不要为另一个数组分配额外的空间,必须通过使用O(1)额外内存修改输入数组来实现此目的.

举例:

1.给定数组 = [3,2,2,3], val = 3,

返回值为2,代表有两个不等于val的值,此时数组前两个值应为[2,2]

2:

给定数组 = [0,1,2,2,3,0,4,2], val = 2,

返回值为5,代表有五个不等于val的值,此时数组前两个值应为[0,1,3,0,4]

解法一:设定两个变量,并遍历一遍数组,i表示结果索引即不等于val的个数,j表示遍历的当前索引,当nums[i]!=nums[j]时,i++并赋值nums[j]

技术图片

复杂度分析

时间复杂度 : O(n)遍历一遍数组

空间复杂度:O(1)定义空间为有限个

解法二:

遍历数组,当前索引值等于val时,将当前索引值与n-1交换,n表示数组长度,每当符合要求时n–1

技术图片

复杂度分析

时间复杂度 : O(n)遍历一遍数组

空间复杂度:O(1)定义空间为有限个

小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海

技术图片

以上是关于LeetCode第二十七题-删除数组指定元素的主要内容,如果未能解决你的问题,请参考以下文章

《剑指offer》第二十七题(二叉树的镜像)

leetcode 简单第四十七题 旋转数组

《剑指offer》第二十七题:二叉树的镜像

leetcode 简单第三十七题 两数之和 II - 输入有序数组

全国计算机等级考试二级Python(2021年9月)备考笔记 第十二天

全国计算机等级考试二级Python(2021年9月)备考笔记 第十四天