题目链接
分析
把数组中的0移到数组的末尾,非0的数按照原来的先后顺序排在数组前面。
简单题。只要把原来数组中非0的数按照出现的先后顺序进行标记就行了。
代码
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int cnt = 0;
map<int, int> mm;
int i;
for(i=0; i<nums.size(); i++){
if(nums[i] != 0){
mm.insert(make_pair(cnt++, nums[i]));
}
}
for(i=0; i<cnt; i++){
nums[i] = mm[i];
}
for(; i<nums.size(); i++){
nums[i] = 0;
}
}
};