classSolution(object):defremoveElement(self, nums, val):"""
:type nums: List[int]
:type val: int
:rtype: int
"""
slow =0
n =len(nums)for fast inrange(n):if nums[fast]!= val:
nums[slow]= nums[fast]
slow +=1return slow
双指针优化(元素顺序改变,前后夹击看你黑驴往哪里逃!!!)
classSolution(object):defremoveElement(self, nums, val):"""
:type nums: List[int]
:type val: int
:rtype: int
"""
n =len(nums)
before =0
after = n -1while before <= after:if nums[before]!= val:
before +=1else:
nums[before]= nums[after]
after -=1return before
双指针优化(java版本)
classSolution{publicintremoveElement(int[] nums,int val){int before =0;int after = nums.length -1;while(before<=after){if(nums[before]!= val){
before++;}else{
nums[before]= nums[after];
after--;}}return before;}}