📅  最后修改于: 2023-12-03 14:49:52.388000             🧑  作者: Mango
在算法/编程中,将数组中的0移动到末尾是常见的问题。 本文将介绍如何使用两个指针来解决此问题。
通过遍历数组,将非零元素依次插入到指针的左侧,将零元素依次插入到指针的右侧。 最终,所有的零都将被移动到末尾。
在以下代码中,使用left_ptr作为指向数组中第一个0的指针,使用i作为遍历数组的指针。
def move_zeros_to_end(nums):
left_ptr = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[left_ptr], nums[i] = nums[i], nums[left_ptr]
left_ptr += 1
return nums
该算法的时间复杂度是O(n),其中n是数组长度。
该算法的空间复杂度是O(1),只需要常量级的额外空间。
本文介绍了如何使用两个指针在O(n)时间内将所有零移动到数组的末尾,对算法和程序员都有很大的帮助。