题目链接
题目描述
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例
示例1:
输入:
[0,1,0,3,12]输出:[1,3,12,0,0]
说明
slow的左边是已经处理过的元素fast跟slow之间为0
注:本题与0027-移除元素类似
题解
class Solution {public:void moveZeroes(vector<int>& nums) {int slow = 0, fast = 0;while (fast < nums.size()) {if (nums[fast]) {swap(nums[slow], nums[fast]);++slow;}++fast;}}};
复杂度分析
- 时间复杂度:
- 空间复杂度:
