題目闡釋:
根據告知的元素,從列表中刪除,並計算剩餘元素的個數
重點:
通過移動一個列表的元素,記錄index位置,將一個列表內的所有元素分類。
計算剩餘元素的個數,也可以看成先分類,再統計。
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.
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 of nums containing 0, 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.
class Solution:
def removeElement(self, nums, val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
start,end=0,len(nums)-1
while start<=end:
if nums[start]==val:
nums[start],nums[end]=nums[end],nums[start]
end-=1
else:
start+=1
return start