移动零

🎯 问题描述(来源于LeetCode)

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。

💻 代码实现

1
2
3
4
5
6
7
8
9
10
11
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
l=len(nums)
for i in range(l-1):
d=i+1
while nums[i]==0 and d<l:
nums[i],nums[d]=nums[d],nums[i]
d+=1

📊 性能分析

提交结果

  • 运行时间:3659ms击败5.01%
  • 内存消耗:18.60MB击败40.75%

复杂度验证

  • 时间复杂度:O(n)O(n)
  • 空间复杂度:O(1)O(1)