我的Bilibili频道:香芋派Taro
我的个人博客:taropie0224.github.io(阅读体验更佳)
我的公众号:香芋派的烘焙坊
我的音频技术交流群:1136403177
我的个人微信:JazzyTaroPie

https://leetcode-cn.com/problems/move-zeroes/

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution
{
public:
void moveZeroes(vector<int> &nums)
{
int n = nums.size();
int left = 0, right = 0;
while (right < n)
{
if (nums[right])
{
swap(nums[left], nums[right]);
left++;
}
right++;
}
}
};

思路

常规的双指针题目,右指针每次都往后遍历,若扫描到非零元素,则将该元素与左指针所处位置互换,同时左指针向右一个位置。