[力扣 Hot100]Day4 移动零

题目描述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。
出处

思路

类似于冒泡,把零向右移。

代码

cpp 复制代码
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        vector<int>::iterator zero = nums.end();
        vector<int>::iterator work = nums.begin();
        while (work != zero){
            if(*work == 0){
                auto t1 = work;
                auto t2 = work+1;
                while (t2!=zero&&t2!=nums.end())
                {
                    swap(*t1,*t2);
                    t1++;
                    t2++;
                }
                zero--;
            }
            else
                work++;
        }
    }
};
相关推荐
hweiyu0010 小时前
二分图匹配算法:匈牙利算法
算法
HL_风神10 小时前
设计原则之单一职责原则
c++·学习·设计模式·单一职责原则
IAR Systems10 小时前
在IAR Embedded Workbench for Renesas RH850中实现ROPI
linux·运维·算法
linzihahaha10 小时前
C++ 单例模式总结
开发语言·c++·单例模式
一个不知名程序员www10 小时前
算法学习入门--- set与map(C++)
c++·算法
POLITE310 小时前
Leetcode 142.环形链表 II JavaScript (Day 10)
javascript·leetcode·链表
鸿途优学-UU教育10 小时前
法考命题趋势解读:为何越来越重视“实战能力”?
算法·法律·uu教育·法考机构
Rui_Freely10 小时前
Vins-Fusion之 相机—IMU在线标定(两帧间旋转估计)(十)
人工智能·算法·计算机视觉
小此方11 小时前
Re: 从零开始的C++ 入門(十)类和对象·最终篇下:类型转换、static成员、友元、匿名对象、内部类、拷贝编译优化
开发语言·c++·底层
mit6.82411 小时前
二分猜答案
算法