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

双指针法之移动零(新数组)

题目

移动零

1、暴力解法

两层for循环,第一个for循环遍历数组元素 ,第二个for循环更新数组。暴力解法的时间复杂度是O(n^2)。

2、双指针法—快慢指针

双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。

定义快慢指针

快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组
慢指针:指向更新 新数组 下标的位置

// 时间复杂度:O(n)
// 空间复杂度:O(1)
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int slowIndex = 0;
        for (int fastIndex = 0; fastIndex < nums.size(); fastIndex++) {
            if (val != nums[fastIndex]) {
                nums[slowIndex++] = nums[fastIndex];
            }
        }
        return slowIndex;
    }
};

更全的解析

http://www.dtcms.com/a/59043.html

相关文章:

  • shell的模拟实现 ─── linux第16课
  • 邮件发送器:使用 Python 构建带 GUI 的邮件自动发送工具
  • 什么是OFD文件?2025年我推荐新版OFD阅读器和PDF阅读器,双合一
  • 【算法方法总结·五】链表操作的一些技巧和注意事项
  • linux学习(五)(服务器审查,正常运行时间负载,身份验证日志,正在运行的服务,评估可用内存)
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-5.1.1热点分片识别与均衡策略
  • 闭包函数是什么?
  • 【算法day5】最长回文子串——中心拓展方法
  • mysql安装(演示为mac安装流程)
  • 自动控制原理【知识点总结、复习笔记】
  • 论文阅读-秦汉时期北方边疆组织的空间互动模式与直道的定位(中国)
  • MySQL-----SELECT语句-查询
  • JVM组成面试题及原理
  • 《云原生监控体系构建实录:从Prometheus到Grafana的观测革命》
  • Linux——.sh 多个阶段的串行和并行执行程序
  • 向量内积(点乘)和外积(叉乘)
  • Linux一键安装zsh终端美化插件
  • MySql自动安装脚本
  • JavaEE进阶(2) Spring Web MVC: Session 和 Cookie
  • BroadcastReceiver的应用
  • 算法 之 堆
  • Rat工具:XiebroC2 一款国产C2工具简单使用介绍
  • 第四章:反射-Reflecting Your World《Unity Shaders and Effets Cookbook》
  • 2025.3.3-2025.3.9学习周报
  • 零基础上手Python数据分析 (1):Windows环境配置与开发工具,开启数据科学之旅!
  • Spring Cloud Gateway 笔记
  • 微软程序的打包格式MSIX
  • [项目]基于FreeRTOS的STM32四轴飞行器: 五.Motor驱动
  • Llama factory微调后的模型怎么通过ollama发布
  • Android 调用c++报错 exception of type std::bad_alloc: std::bad_alloc