题目链接:https://leetcode.cn/problems/move-zeroes/description/
解题思路: 题目归类数组划分:将一个数组划分成若干个区间
解题方法:
定义两个指针:dest,cur。
联想思想:快排
`void swap(int*nums,int a,int b)
{
int tmp=0;
tmp=nums[a];
nums[a]=nums[b];
nums[b]=tmp;
}
void moveZeroes(int* nums, int numsSize) {
int n=numsSize;
int dest=-1;
for(int cur=0;cur<numsSize;cur++)
{
if(nums[cur])
{
swap(nums,dest+1,cur);
dest++;
}
}
}`
`class Solution {
public:
void moveZeroes(vector<int>& nums) {
for(int cur=0,dest=-1;cur<nums.size();cur++)
{
if(nums[cur])
{
swap(nums[++dest],nums[cur]);
}
}
}
};