回顾@@@@

283. 移动零

思路一:

统计出所有的0元素,将其删除,list末尾补全0的个数。

# ver 1
# n = nums.count(0)
# print(n)
# for i in range(n):
#     nums.remove(0)
# nums.extend([0]*n)
# print(nums)

# ver 2
for i in range(len(nums)):
    if nums[i]==0:
        del nums[i]
        nums.append(0)
return nums

但这种方法,leetcode报错。(为什么gg?)

283. 移动零

思路二:i位置不是0元素,将其交换。j永远停留在0的位置。

accept:

# 思路三: 移动非零元素(操作次数就是非零元素的个数)
j = 0   # 记录非零元素应该换到第几个位置
for i in range(len(nums)):
    if nums[i] != 0:       
        nums[j], nums[i] = nums[i], nums[j]
        j += 1

然后知道了,python交换数组位置只要 283. 移动零

不用引入一个新的变量tmp。 

283. 移动零

相关文章:

  • 2022-12-23
  • 2021-06-18
  • 2021-10-25
  • 2021-06-14
  • 2022-12-23
  • 2021-06-06
  • 2021-12-17
猜你喜欢
  • 2022-01-10
  • 2021-08-03
  • 2021-11-18
  • 2021-10-11
  • 2021-12-06
相关资源
相似解决方案