提示:以下是本篇文章正文内容,下面案例可供参考
1.自己的暴力解法
无
2.自己的进阶解法
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int slow = 0, fast = 0;
while (fast <= nums.size() - 1)
{
if (nums[fast] != 0) nums[slow++] = nums[fast++];
else ++fast;
}
while (slow <= nums.size() - 1) nums[slow++] = 0;
}
};
3.自己的库函数解法
无
4.题解的暴力解法
无
5.题解的进阶解法
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int n = nums.size(), left = 0, right = 0;
while (right < n) {
if (nums[right]) {
swap(nums[left], nums[right]);
left++;
}
right++;
}
}
};
作者:LeetCode-Solution
来源:力扣(LeetCode)
6.总结
双指针的应用。