class Solution:
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
# 思路一: 0 个数多的时候效率低下
# for i in nums:
# if i == 0:
# nums.remove(i)
# nums.append(0)
# 思路二: 逆向循环避免多余操作(操作次数是,0个数的两倍)
# for i in range(len(nums)-1,-1,-1):
# if nums[i] == 0:
# del nums[i]
# nums.append(0)
# 思路三: 移动非零元素(操作次数就是非零元素的个数)
j = 0 # 记录非零元素应该换到第几个位置
for i in range(len(nums)):
if nums[i] != 0:
nums[j], nums[i] = nums[i], nums[j]
j += 1
leetcode 283. Move Zeros(移动零) python3 多种思路(移动零 / 移动非零)
猜你喜欢
转载自blog.csdn.net/huhehaotechangsha/article/details/80533705
今日推荐
周排行