<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
9def 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)


