第一种:直接去除数组中与给定值相等的元素
class Solution(object): def removeElement(self, nums, val): """ :type nums: List[int] :type val: int :rtype: int """ while val in nums: nums.remove(val) return len(nums)第二种 双指针 采用双指针,使得数组中与目标相同的元素全放到数组后方 运行到代码的return left就能返回剩下数组的长度,return left之后是为了返回剩余的数组元素
class Solution(object): def removeElement(self, nums, val): """ :type nums: List[int] :type val: int :rtype: int """ left =0 right=len(nums)-1 while left<right: if nums[left]==val and nums[right]!=val: nums[left],nums[right]=nums[right],nums[left] elif nums[left]!=val: left+=1 elif nums[right]==val: right-=1 res=0 for i in range(len(nums)): if nums[i]!=val: res+=1 return res