复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16class Solution: def removeElement(self, nums, val): """ :type nums: List[int] :type val: int :rtype: int """ i = j = 0 while j < len(nums): if nums[j] == val: j = j+1 else: nums[i]=nums[j] i = i+1 j = j+1 return len(nums[0:i])
注意:
python中切片的用法
return的用法
len的意义
官方题解:
方法一:双指针
方法二:双指针 —— 当要删除的元素很少时
思路
现在考虑数组包含很少的要删除的元素的情况。例如,num=[1,2,3,5,4],Val=4。之前的算法会对前四个元素做不必要的复制操作。另一个例子是 num=[4,1,2,3,5],Val=4,似乎没有必要将 [1,2,3,5] 这几个元素左移一步,因为问题描述中提到元素的顺序可以更改。
算法
当我们遇到 nums[i] = val 时,我们可以将当前元素与最后一个元素进行交换,并释放最后一个元素。这实际上使数组的大小减少了 1。
请注意,被交换的最后一个元素可能是您想要移除的值。但是不要担心,在下一次迭代中,我们仍然会检查这个元素。
最后
以上就是任性云朵最近收集整理的关于python实现leetcode-第27题-移除元素的全部内容,更多相关python实现leetcode-第27题-移除元素内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复