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
注意事项:
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.
"""
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)