您的位置:首页 > 其它

[leetcode]Move zeros 慢方法和快方法

2015-09-20 14:08 375 查看
慢方法

class Solution {
public:
void moveZeroes(vector<int>& nums) {
for(int i = 0;i != nums.size();++i){
if(nums[i] == 0){
for(int j = i + 1;j != nums.size();++j){
if(nums[j] != 0){
change(nums[i],nums[j]);break;}
}
}
}
}

private:
void change(int& a,int& b){
int tem = a;
a = b;
b = tem;
}
};


快方法

class Solution {
public:
void moveZeroes(vector<int>& nums) {
size_t pos = 0;
for(size_t i = 0;i != nums.size();++i){
if(nums[i] != 0) nums[pos++] = nums[i];
}
for(;pos != nums.size();++pos)
nums[pos] = 0;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: