快慢指针 移动数组中的0
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
示例 1:
输入: nums =[0,1,0,3,12]输出:[1,3,12,0,0]
快指针找到最近的非0数
慢指针找到最近的0,保持在最左侧的0位置
最近的非0数字,跟最左侧0的位置交换,相当于0向右移动
"每个非零值都与左指针进行了交换,而且顺序靠前的先交换到了左指针处,交换后左指针增加,后面交换过来的还是靠后的 而且左指针左边的能保证都是非零值,因此既满足非零又能保证原来顺序"
python有些操作真的不太好,三行核心代码太取巧
for i in range(nums.count(0)):
nums.remove(0)
nums.append(0)
return nums

被折叠的 条评论
为什么被折叠?



