错误示范:

 1 class Solution:
 2     def removeElement(self, nums, val: int) -> int:
 3         for i, num in enumerate(nums):
 4             print('i=', i, ', num=', num, ', nums=', nums)
 5             if num == val:
 6                 nums.remove(val)
 7         return len(nums)
 8 
 9 s = Solution()
10 s.removeElement([2, 0,1,2,2,3,0,4,2], 2)
11 # i= 0 , num= 2 , nums= [2, 0, 1, 2, 2, 3, 0, 4, 2]
12 # i= 1 , num= 1 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
13 # i= 2 , num= 2 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
14 # i= 3 , num= 3 , nums= [0, 1, 2, 3, 0, 4, 2]
15 # i= 4 , num= 0 , nums= [0, 1, 2, 3, 0, 4, 2]
16 # i= 5 , num= 4 , nums= [0, 1, 2, 3, 0, 4, 2]
17 # i= 6 , num= 2 , nums= [0, 1, 2, 3, 0, 4, 2]

解决方式:

① 使用尾递归方式

 1 class Solution:
 2     def removeElement(self, nums, val: int) -> int:
 3         for i, num in enumerate(nums[::-1]):
 4             print('i=', i, ', num=', num, ', nums=', nums)
 5             if num == val:
 6                 nums.remove(val)
 7         return len(nums)
 8 
 9 s = Solution()
10 s.removeElement([2, 0,1,2,2,3,0,4,2], 2)
11 # i= 0 , num= 2 , nums= [2, 0, 1, 2, 2, 3, 0, 4, 2]
12 # i= 1 , num= 4 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
13 # i= 2 , num= 0 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
14 # i= 3 , num= 3 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
15 # i= 4 , num= 2 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
16 # i= 5 , num= 2 , nums= [0, 1, 2, 3, 0, 4, 2]
17 # i= 6 , num= 1 , nums= [0, 1, 3, 0, 4, 2]
18 # i= 7 , num= 0 , nums= [0, 1, 3, 0, 4, 2]
19 # i= 8 , num= 2 , nums= [0, 1, 3, 0, 4, 2]
View Code

相关文章:

  • 2021-09-18
  • 2022-12-23
  • 2022-12-23
  • 2021-08-24
  • 2019-10-26
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-04
相关资源
相似解决方案