283. 移动零

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

请注意 ,必须在不复制数组的情况下原地对数组进行操作。
示例 1:
输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

点击查看代码
class Solution:
    def moveZeroes(self,nums):
        n = len(nums)
        left, right = 0, 0
        while right < n:
            if nums[right] != 0:
                nums[left], nums[right] = nums[right], nums[left]
                left += 1
            right += 1

点击查看pycharm代码
class Solution:
    def moveZeroes(self,nums):
        n = len(nums)
        left, right = 0, 0
        while right < n:
            if nums[right] != 0:
                nums[left], nums[right] = nums[right], nums[left]
                left += 1
            right += 1

if __name__ == "__main__":
    solution = Solution()
    list2 = [0,1,0,0,3,7,0,6,8]
    solution.moveZeroes(list2)
    print(list2)

思路: 用俩个指针,右边的指针指的不是0的话,跟左边指针指的交换位置,左右指针的位置里都是0

image
image

image

posted @ 2022-12-21 18:03  辛宣  阅读(25)  评论(0)    收藏  举报