KK's blog

每天积累多一些

0%

LeetCode 283 Move Zeroes

LeetCode



Given an integer array nums, move all 0‘s to the end of it while maintaining the relative order of the non-zero elements.

Note that you must do this in-place without making a copy of the array.

Example 1:

Input: nums = [0,1,0,3,12]
Output: [1,3,12,0,0]


Example 2:

Input: nums = [0]
Output: [0]


Constraints:

1 <= nums.length <= 10<sup>4</sup> -2<sup>31</sup> <= nums[i] <= 2<sup>31</sup> - 1

Follow up: Could you minimize the total number of operations done?

题目大意:

将数组的0全部移到数组末

解题思路:

简单题。Quicksort的partition的应用

解题步骤:

N/A

注意事项:

  1. Python代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    def moveZeroes(self, nums: List[int]) -> None:
    """
    Do not return anything, modify nums in-place instead.
    """
    non_zero_idx = 0
    for i in range(len(nums)):
    if nums[i] != 0:
    nums[i], nums[non_zero_idx] = nums[non_zero_idx], nums[i]
    non_zero_idx += 1

算法分析:

时间复杂度为O(n),空间复杂度O(1)

Free mock interview