一、题目描述(删除给定元素)
https://leetcode.com/problems/remove-element/description/
Given an array nums and a value val, 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.
给定数组nums和值val,在适当位置删除该值的所有实例并返回新长度。
不要为另一个数组分配额外的空间,必须通过使用O(1)额外内存就地修改输入数组来完成此操作。可以更改元素的顺序。 你留下的新长度并不重要。Example 1:
Given nums = [3,2,2,3], val = 3, Your function should return length = 2, with the first two elements of nums being 2. It doesn't matter what you leave beyond the returned length.Example 2:
Given nums = [0,1,2,2,3,0,4,2], val = 2, Your function should return length =5
, with the first five elements ofnums
containing0
,1
,3
,0
, and 4. Note that the order of those five elements can be arbitrary. It doesn't matter what values are set beyond the returned length.
二、题目分析
跟上题一样,so附上代码
三、代码实现
class Solution: def removeElement(self, nums, val): """ :type nums: List[int] :type val: int :rtype: int """ l=len(nums) j=0 for i in range(0,len(nums)): if nums[i]==val: l=l-1 else: nums[j]=nums[i] j=j+1 return l