算法---双指针练习-1(移动零)

移动零

  • 1. 题目解析
  • 2. 讲解算法原理
    • 数组划分,数组分块(核心思想)
    • 如何做到
  • 3. 编写代码

1. 题目解析

题目地址:点这里

在这里插入图片描述

2. 讲解算法原理

数组划分,数组分块(核心思想)

在这里插入图片描述

  • dest一般初始化为-1;

如何做到

在这里插入图片描述

首先,初始化变量 dest 和 cur,分别表示非零元素应该存储的位置和当前元素的位置。初始时,dest 被设为-1,cur 被设为0。同时,获取数组 nums 的长度 n。

进入一个循环,循环条件是 cur 小于等于 n。在每一次循环中,检查当前元素是否为非零元素。

  • 如果当前元素不为零,则将 dest 的值增加 1,然后交换位置 dest 和位置 cur 上的元素。这样做的目的是将非零元素移动到数组的前部分,保持它们的相对顺序。
  • 如果当前元素为零,则不进行任何操作,继续下一个循环。
    这样,经过循环遍历后,所有的非零元素都会被移动到数组的前部分,而零元素会留在数组的后部分。

循环结束后,数组 nums 中的非零元素已经被移动到了前部分,并保持了它们的相对顺序。而零元素则留在了数组的后部分

3. 编写代码

void moveZeroes(vector<int>& nums) {int dest=-1;int cur=0;int n=nums.size()-1;while(cur<=n){if(nums[cur]!=0){dest++;swap(nums[dest],nums[cur]);}cur++;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/536263.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2024-03-12】设计模式之模板模式的理解

实际应用场景&#xff1a;制作月饼 过程描述&#xff1a; 一开始&#xff0c;由人工制作月饼&#xff0c; 第一个&#xff1a;根据脑子里面月饼的形状&#xff0c;先涅出月饼的形状&#xff0c;然后放入面粉和馅料把开口合并起来。 第二个&#xff1a;根据脑子里面月饼的形状&…

实用指南!2024年度计划怎么写?工作学习必备!

在新的一年开始之际&#xff0c;制定一份详细而实用的年度计划对于实现个人和职业目标至关重要。无论是在工作、学习还是生活中&#xff0c;一个明确的计划可以帮助你更好地组织时间、资源和精力&#xff0c;从而更有效地实现目标。下面是一个关于如何写年度计划的指南&#xf…

食药物质创新 赋能中式滋补健康产业发展交流会圆满结束

3月5日&#xff0c;“食药物质创新 赋能中式滋补健康产业发展交流会”在山东国际会展中心召开。本次会议由中国生物发酵产业协会主办&#xff0c;浙江科技大学、未名太研生物科技(绍兴)有限公司承办&#xff0c;汇乐达供应链服务(常州)有限责任公司支持。本次论坛旨在加强行业创…

详解MySQL的MVCC(ReadView部分解析C++源码)

文章目录 1. 什么是MVCC2. MVCC核心组成&#xff08;三大件&#xff09;2.1 MVCC为什么需要三大件 3. 隐藏字段4. undo log4.1 模拟版本链数据形成过程 5. Read View5.1 m_ids5.2 m_creator_trx_id5.3 m_low_limit_id5.4 m_up_limit_id5.5 可见性分析算法 6. MVCC流程模拟6.1 R…

【Axure高保真原型】下拉列表切换图表

今天和大家分享通过下拉列表动态切换统计图表的原型模板&#xff0c;我们可以通过下拉列表选择要显示的图表&#xff0c;包括柱状图、条形图、饼图、环形图、折线图、曲线图、面积图、阶梯图、雷达图&#xff1b;而且图表数据可以在左侧表格中动态维护&#xff0c;包括增加修改…

浅谈Redis 的 保护模式(protected-mode)

今天在一台服务器上面部署了redis,发现始终无法用工具远程连接,项目里面是正常的,就是工具不行,防火墙也关闭了.折腾了一会才突然想起来,是不是触发了保护模式. 什么时候触发保护模式protected-mode: 同时满足以下两个: 1.bind未指定ip 2.未配置密码 解决方案: 编辑redis…

码头船只出行和货柜管理系统的设计与实现

针对于码头船只货柜信息管理方面的不规范&#xff0c;容错率低&#xff0c;管理人员处理数据费工费时&#xff0c;采用新开发的码头船只货柜管理系统可以从根源上规范整个数据处理流程。 码头船只货柜管理系统能够实现货柜管理&#xff0c;路线管理&#xff0c;新闻管理&#…

数据结构之树(Topk问题, 链式二叉树)

一.topk问题 取N个数中最大(小)的前k个值,N远大于k 这道题可以用堆的方法来解决,首先取这N个数的前k个值,用它们建堆 时间复杂度O(k) 之后将剩余的N-k个数据依次与堆顶数据进行比较,如果比堆顶数据大,则将堆顶数据覆盖后向下调整 时间复杂度(N-k)*log(N) 总共的时间复杂度…

[SAP ABAP] 数值向上/向下取整

ceil()函数对数值进行向上取整&#xff0c;floor()函数对数值进行向下取整 输出结果&#xff1a;

48. 【Linux教程】yum 软件包管理

本小节介绍如何在 Linux 系统中使用 yum 命令软件管理。 1.yum 简介 yum 是 Red Hat 软件包管理器&#xff0c;它能够查询有关可用软件包的信息&#xff0c;从存储库获取软件包&#xff0c;安装和卸载软件包&#xff0c;以及将整个系统更新到最新的可用版本。yum 在更新&#…

力扣-[700. 二叉搜索树中的搜索]

递归法 确定递归函数的参数和返回值 递归函数的参数传入的就是根节点和要搜索的数值&#xff0c;返回的就是以这个搜索数值所在的节点。 代码如下&#xff1a; public TreeNode searchBST(TreeNode root, int val) 确定终止条件 如果root为空&#xff0c;返回null&#xff0c…

ChatGPT4 API-Key初探-本地调用API进行多轮对话方和流式输出

ChatGPT API 使用&#x1f60e; 既然要做大模型尽管可能国内无法使用GPT进行商用&#xff0c;除了性能地表最强之外&#xff0c;其优秀的Function calling&#xff08;函数调用&#xff09;在线微调还有各种&#xff0c;例如可以便捷处理知识向量库等功能&#xff0c;都是非常…