KK's blog

每天积累多一些

0%

LeetCode 283 Move Zeroes

LeetCode

<div>

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:

<pre>Input: nums = [0,1,0,3,12] Output: [1,3,12,0,0] </pre>

Example 2:

<pre>Input: nums = [0] Output: [0] </pre>

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?</div>

题目大意:

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

解题思路:

简单题。Quicksort的partition的应用

解题步骤:

N/A

注意事项:

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.
"""
first_zero_idx = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[i], nums[first_zero_idx] = nums[first_zero_idx], nums[i]
first_zero_idx += 1

算法分析:

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

Free mock interview