给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
本 LeetBook 由「力扣」和作者共同制作和发行,版权所有侵权必究(不是我想出来的问题…)。
示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:
必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。
思路列表是记录索引值的 如果你从第一位开始删除的话那么元素会往前移动从而打乱索引顺序
既然这样的话 那么我就倒叙循环
nums = [0, 1, 0, 3, 12]
for i in range(len(nums)-1, -1, -1):
if nums[i] == 0:
nums.append(nums[i])
nums.pop(i)
还有一个思路就是既然下标会紊乱 那么可以借助别的变量去记录该值 JH编写
j = 0
for i in range(len(nums)):
if nums[j] == 0:
nums.append(nums[j])
nums.pop(j)
else:
j += 1
还有一种思路我没有实现 等待你们把…可以评论 LX说可以双指针!!!