[力扣 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++;
        }
    }
};
相关推荐
平平淡淡才是true17 小时前
偏序关系、哈斯图、最长链长度、最长链条数
算法
小钊(求职中)17 小时前
算法知识、常用方法总结
java·算法·排序算法·力扣
paeamecium17 小时前
【PAT甲级真题】- Talent and Virtue (25)
数据结构·c++·算法·pat
Mr_Xuhhh17 小时前
蓝桥杯复习清单真题(C++版本)
c++·算法·蓝桥杯
tankeven17 小时前
HJ163 时津风的资源收集
c++·算法
森G17 小时前
40、对话框---------事件系统
c++·qt
Boop_wu18 小时前
[Java 算法] 动态规划(4)
数据结构·算法·leetcode
旖-旎18 小时前
分治(计算右侧小于当前元素的个数)(7)
c++·学习·算法·leetcode·排序算法·归并排序
迷海18 小时前
C++内存对齐
开发语言·c++
cxr82818 小时前
细胞球运动追踪的卡尔曼滤波与力场插值算法 —— 活体内微米级颗粒实时定位与轨迹预测系统
算法