题目来源(力扣. - 力扣(LeetCode),简单)
解题思路:
双指针+交换,使用left和right两个指针,right指针向右移动,left从数组首位开始,当right找到非零的数值时,将right的值与left的值进行交换,最后right遍历结束后,数组也已排序完成。
代码实现:
left,right=0,0
n=len(nums)
for i in range(n):
if nums[right]!=0:
t=nums[left]
nums[left]=nums[right]
nums[right]=t
left+=1
right+=1
return nums
总结:
将零移动到末尾,也可将所有的非零移动到最数组左边,采用交换的方法,最后所有的零将被换到右边,只需遍历一次即可。