[力扣 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++;
        }
    }
};
相关推荐
Hcoco_me5 分钟前
大模型面试题18:t-SNE算法详解及入门实操
算法
Data_agent42 分钟前
学术爬虫实战:构建知网论文关键词共现网络的技术指南
python·算法
龚礼鹏42 分钟前
Android应用程序 c/c++ 崩溃排查流程
c语言·开发语言·c++
立志成为大牛的小牛1 小时前
数据结构——五十五、散列查找的性能分析(线性探测法)(王道408)
数据结构·程序人生·考研·算法
神也佑我橙橙2 小时前
Thrift 简单介绍
算法
simon_skywalker2 小时前
线性代数及其应用习题答案(中文版)第二章 矩阵代数 2.1 矩阵运算(2)
线性代数·算法·矩阵
REDcker2 小时前
JS 与 C++ 语言绑定技术详解
开发语言·javascript·c++
June`2 小时前
C++11新特性全面解析(三):智能指针与死锁
开发语言·c++
断剑zou天涯2 小时前
【算法笔记】Manacher算法
java·笔记·算法
monster000w3 小时前
大模型微调过程
人工智能·深度学习·算法·计算机视觉·信息与通信