LeetCode:283. 移动零

    xiaoxiao2025-01-05  59

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

    示例:

    输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明:

    必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。

    思路: 要用index来记录遍历到的不是0的元素个数。比如当遍历到第一个不是0的元素时,index=0,此时nums的第index个元素就应该是遍历到的这个元素,然后index+1。将列表遍历完一遍之后,此时已经将非零元素都放好,剩下的位置都应该是0,也就是从此时的第index到第n-1个元素都应该是0,赋值后返回nums

    class Solution(object): def moveZeroes(self, nums): """ :type nums: List[int] :rtype: None Do not return anything, modify nums in-place instead. """ index = 0 n = len(nums) for i in range(n): if nums[i] != 0: nums[index] = nums[i] index+=1 for i in range(index,n): nums[i] = 0 return nums
    最新回复(0)