[力扣 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++;
        }
    }
};
相关推荐
hipolymers16 小时前
C语言怎么样?难学吗?
c语言·数据结构·学习·算法·编程
workflower17 小时前
机器人应用-楼宇室内巡逻
大数据·人工智能·算法·microsoft·机器人·动态规划·享元模式
ZPC821017 小时前
fanuc 机器人通过PR寄存器实现轨迹控制
人工智能·算法·计算机视觉·机器人
py有趣18 小时前
力扣热门100题之编辑距离
数据结构·算法·leetcode
Wave84518 小时前
C++继承详解
开发语言·c++·算法
Tairitsu_H18 小时前
C++类基础概念:定义、实例化和this指针
开发语言·c++
睡觉就不困鸭18 小时前
第9天 两数之和
算法·哈希算法·散列表
不想写代码的星星18 小时前
C++17 string_view 观察报告:好用,但有点费命
c++
贾斯汀玛尔斯18 小时前
每天学一个算法--动态规划(Dynamic Programming, DP)
算法·动态规划
水木流年追梦18 小时前
CodeTop 热门题目汇总hot300题
算法·leetcode·职场和发展