问题和我的代码如下。但是,我仍然会收到一条消息,说“&34;不要返回任何内容,而是在原地修改nums。”#34;任何人都可以解释为什么我的代码没有计算"就地"请?谢谢!
给定一个数组nums,写一个函数将所有0都移动到它的末尾,同时保持非零元素的相对顺序。 例如,给定nums = [0,1,0,3,12],在调用函数后,nums应为[1,3,12,0,0]。
注意: 您必须就地执行此操作,而无需复制阵列。 最小化操作总数。
class Solution(object):
def moveZeroes(self, nums):
count=0
for i in range(len(nums)):
if nums[i]==0:
a=nums.pop(i)
nums.append(a)
return nums
答案 0 :(得分:0)
nums = [0, 1, 0, 3, 12]
def moveZeroes(nums):
pos = 0
for i in range(len(nums)):
if nums[i]:
nums[i], nums[pos] = nums[pos], nums[i]
pos += 1
moveZeroes(nums)
print(nums)
输出:
[1, 3, 12, 0, 0]