Description:
Given an array and a value, remove all instances of that value in-place and return the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Translate:
给出一个数组和一个特殊值,移出所有和这个特殊值相同的元素并返回新数组的长度。
不能分配额外的空间给其他的数组,你必须在O(1)的空间复杂度里完成这个算法。
数组里的元素顺序可以改变。不管后面输出的新长度是多少都没关系。
Example:
Given nums = [3,2,2,3], val = 3,
Your function should return length = 2, with the first two elements of nums being 2.
Solution:
class Solution(object):
def removeElement(self, nums, val):
i = 0
for j in range(0, len(nums)):
if(nums[j]!=val):
nums[i]=nums[j]
i=i+1
return i
by me
Analysis:
这个题目是一道简单的题目,主要不要进入要把数组元素调换顺序才能,把元素移到数组最后删除,其实这些需要被删除的数组是可以随意被覆盖的,最后新长度后面的元素不需要考虑是什么。
网友评论