1. 题目
Move Zeroes
给定一个数组nums,写一个函数,将0移到数组尾,并保持非0元素的相对顺序。 要求: - 必须就地操作,不能复制数组; - 最小化操作总次数。
2. 分析
采用类似选择排序的思想 只是此时前移的不再是min_val而是非0元素
3. 代码
class Solution {
public:
void moveZeroes(
vector<int>& nums) {
int len = nums.size();
if(len <=
1)
return;
int index =
0;
for (
int i =
0; i < len; ++i) {
if (nums[i] !=
0) {
swap(nums[index], nums[i]);
++index;
}
}
return;
}
};