当前位置: 首页 > 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;
    }
};

更全的解析

相关文章:

  • 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的应用
  • 广州市酒店网站设计/seo搜索价格
  • 常用网站开发技术和工具/企业员工培训课程有哪些
  • 张扬网站建设/网站建站在线制作
  • 承德市宽城县建设局网站/广告推广网站
  • 服装企业网站策划书/商品关键词优化的方法
  • 视频播放网站建设/搜狗搜索推广