[力扣 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++;
        }
    }
};
相关推荐
阿巴~阿巴~14 分钟前
TCP服务器实现全流程解析(简易回声服务端):从套接字创建到请求处理
linux·服务器·网络·c++·tcp·socket网络编程
Elias不吃糖16 分钟前
LeetCode每日一练(189, 122)
c++·算法·leetcode
w***375119 分钟前
SpringMVC 请求参数接收
前端·javascript·算法
小猪咪piggy21 分钟前
【算法】day 19 leetcode 100 矩阵+贪心
算法·leetcode·矩阵
赖small强24 分钟前
【Linux C/C++开发】第20章:进程间通信理论
linux·c语言·c++·进程间通信
赖small强25 分钟前
【Linux C/C++开发】第24章:现代C++特性(C++17/20)核心概念
linux·c语言·c++·c++17/20
-森屿安年-31 分钟前
LeetCode 11. 盛最多水的容器
开发语言·c++·算法·leetcode
2501_9418036234 分钟前
Go高性能分布式爬虫与Web数据采集实战分享:多线程抓取、反爬策略与性能优化经验
leetcode
flashlight_hi38 分钟前
LeetCode 分类刷题:112. 路径总和
javascript·算法·leetcode
ouliten42 分钟前
C++笔记:std::stringbuf
开发语言·c++·笔记