1.问题描述:
给一个数组 nums 写一个函数将 0
移动到数组的最后面,非零元素保持原数组的顺序。
注意事项
1.必须在原数组上操作
2.最小化操作数
2.样例:
给出 nums = [0, 1, 0, 3, 12]
, 调用函数之后, nums = [1, 3, 12, 0, 0]。
3.代码:
class Solution:
"""
@param: nums: an integer array
@return:
"""
def moveZeroes(self, nums):
# write your code here
length=len(nums)
for i in range(length):
if nums[i]==0:
j=i
while nums[j]==0 and j<length-1:
j+=1
tmp=nums[i]
nums[i]=nums[j]
nums[j]=tmp
return nums
注意:本题需要保持其他元素的顺序不发生改变。思想是利用选择的方法,每次遇到一个0,就找在这个0之后的第一个非零元素,然后做交换。这样,可以保持其他元素顺序不变。