当前位置: 首页 > article >正文

Leetcode 移动零

在这里插入图片描述
要求将数组中的所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。下面是该题的 C++ 解决方案:

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int nonZeroPos = 0;  // 记录非零元素应该放置的位置
        // 遍历数组,遇到非零元素就将其移动到非零元素应该放置的位置
        for (int i = 0; i < nums.size(); i++) {
            if (nums[i] != 0) {
                nums[nonZeroPos++] = nums[i];
            }
        }
        // 将剩下的位置填充为0
        for (int i = nonZeroPos; i < nums.size(); i++) {
            nums[i] = 0;
        }
    }
};

代码说明:

  1. nonZeroPos 变量用于记录非零元素应该放置的位置。
  2. 第一个 for 循环遍历数组,当发现非零元素时,将其移动到 nonZeroPos 位置,随后 nonZeroPos 自增。
  3. 第二个 for 循环从 nonZeroPos 开始,将数组的剩余部分填充为 0。

这种方法的时间复杂度为 O(n),其中 n 是数组的长度。


http://www.kler.cn/a/299325.html

相关文章:

  • qApp->allWindows()
  • EAC认证—技术护照、安全论证和使用说明编制要求
  • Github 2024-09-10 Python开源项目日报 Top10
  • go急速入门API开发
  • 深度学习-目标检测(一)-R-CNN
  • 2024年10款好用的图纸加密软件推荐|有效的图纸加密方法分享
  • C#--CM+Fody+HCWPF开发组合
  • 图标工具类 - C#小函数类推荐
  • 『功能项目』状态模式转换场景【30】
  • DDoS安全防护,多场景适用!
  • 各类AI工具编程能力测试对比
  • Ubuntu 安装PostgreSQL
  • 【PPT学习笔记】使用PPT制作动画/手书/视频等作品的适配性和可能性?
  • [苍穹外卖]-08微信支付详解
  • python转换并提取pdf文件中的图片
  • 智能巡检机器人局部放电检测的应用
  • 828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群
  • 苹果系统(MacOS)中的Finder如何方便展现根目录
  • Windows与linux中docker的安装与使用
  • 计算机毕业设计选题推荐-健康健身追踪系统-运动健身系统-Java/Python项目实战