题目:
给定一个数组和一个值,在这个数组中原地移除指定值和返回移除后新的数组长度。
不要为其他数组分配额外空间,你必须使用 O(1) 的额外内存原地修改这个输入数组。
元素的顺序可以改变。超过返回的新的数组长度以外的数据无论是什么都没关系。
示例:
给定 nums = [3,2,2,3],val = 3,
你的函数应该返回 长度 = 2,数组的前两个元素是 2。
python代码1:
class Solution:
def removeElement(self, nums, val):
count = 0
index = 0
while index<len(nums):
if nums[index] != val:
nums[count] = nums[index]
count += 1
index += 1
return count
python代码2:
class Solution:
def removeElement(self, nums, val):
if nums == []:
return 0
j = -1
for i in range(len(nums)):
if val != nums[i]:
nums[j+1] = nums[i]
j += 1
return j+1
心得:此题较为简单,定义两个“指针”即可对数组操作,有26题做铺垫,此题不容易审错题。第二个代码其实就是在上一道题目的代码上稍加修改即可得到。
版权声明:本文为博主原创文章,未经允许不得转载。https://blog.youkuaiyun.com/cuicheng01/article/details/79881201