描述
给你一个数组,要求把所有的0移到末尾,其它数的相对顺序不变。
解决
方案一 拷贝到另一个数组存储;方案二,直接用当前数组存。
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int lenth = nums.size();
if (lenth == 0){
return ;
}
vector<int> res(lenth);
int index = 0;
for (int i = 0; i != lenth; ++i){
if (nums[i] != 0){
res[index++] = nums[i];
}
}
while (index != lenth){
res[index++] = 0;
}
nums = res;
return ;
}
};
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int j = 0;
// move all the nonzero elements advance
for (int i = 0; i < nums.size(); i++) {
if (nums[i] != 0) {
nums[j++] = nums[i];
}
}
for (;j < nums.size(); j++) {
nums[j] = 0;
}
}
};