91.移动零(力扣)

 问题描述

代码解决以及思想 

class Solution {
public:void moveZeroes(vector<int>& nums) {int left = 0;   // 左指针,用于指向当前非零元素应该放置的位置int right = 0;  // 右指针,用于遍历数组int len = nums.size();  // 数组长度while (right < len) {// 如果右指针指向的元素不是零if (nums[right] != 0) {// 交换左指针和右指针指向的元素,将非零元素移动到左指针的位置swap(nums[left], nums[right]);// 移动左指针,为下一个非零元素找到位置left++;}// 移动右指针,继续遍历数组right++;}}
};

上述代码的思想是使用双指针法,通过一个左指针(left)和一个右指针(right)协同工作,将数组中的所有零元素移动到数组的末尾,同时保持其他非零元素的相对顺序。以下是代码的主要思想:

  1. 初始化左指针 left 和右指针 right 为数组的起始位置。

  2. 右指针 right 用于遍历整个数组。

  3. 如果右指针指向的元素不是零(nums[right] != 0),表示找到了一个非零元素。

  4. 执行交换操作:交换左指针 left 和右指针 right 指向的元素。这样做的效果是将非零元素移动到左指针的位置。

  5. 移动左指针 left,以便为下一个非零元素找到位置。

  6. 移动右指针 right 继续遍历数组。

  7. 重复上述步骤,直到右指针 right 遍历完整个数组。

 

写在最后:以上就是本篇文章的内容了,感谢你的阅读。如果感到有所收获的话可以给博主点一个赞哦。如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~  

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

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

相关文章

Postman内置动态参数以及自定义的动态参数

近期在复习Postman的基础知识&#xff0c;在小破站上跟着百里老师系统复习了一遍&#xff0c;也做了一些笔记&#xff0c;希望可以给大家一点点启发。 一&#xff09;内置动态参数 {{$timestamp}} 生成当前时间的时间戳{{$randomInt}} 生成0-1000之间的随机数{{$guid}} 生成随…

IDEA没有Add Framework Support解决办法

点击File—>Settings 点击第一个设置快捷键 点击apply和ok即可 我们要点击一下项目&#xff0c;再按快捷键ctrlk 即可

javaweb---maventomcat使用教程

文章目录 今日内容0 复习昨日1 Maven1.0 引言1.1 介绍1.2 下载1.3 安装1.3.1 解压1.3.2 配置环境变量1.3.3 测试 1.4 仓库1.5 Maven配置1.5.1 修改仓库位置1.5.2 设置镜像 2 IDEA - MAVEN2.1 idea关联maven2.2 创建java项目2.3 java项目结构2.4 pom2.5 导入依赖2.5.1 查找依赖2…

氢原子波函数等概率面的绘制

氢原子波函数等概率面的绘制 归一化后的氢原子波函数

c语言:如何打印杨辉三角形。

题目&#xff1a;打印杨辉三角形 如&#xff1a; 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 思路和代码&#xff1a; //由规律不难得出&#xff0c;每行首个数字和最后最后一个数字都为1&#xff0c;其余数字是这列的上一个数字和前一个数字的和组成&#xff0c;由此推出代码 #de…

Day31力扣打卡

打卡记录 由子序列构造的最长回文串的长度&#xff08;区间DP&#xff09; 先将两个字符串合并&#xff0c;再仿照 最长回文子序列 的做法&#xff0c;从中间开始往外进行遍历&#xff0c;由于是两个字符串&#xff0c;在 最长回文子序列 的做法上需要满足 len(word1) < j …

解决:java: 错误: 不支持发行版本 5 最有效方法

报错信息如图&#xff1a; 直接上终极方法&#xff1a; 修改配置文件 如图找到settings.xml文件 在标签中间插入如下代码&#xff08;jdk更改为自己电脑上的版本&#xff09; <profile><id>development</id><activation><jdk>11</jdk><…

MySQL表的增查(进阶)

目录 1.插入查询结果 2.查询 2.1聚合查询 2.1.1聚合函数 2.1.2GROUP BY子句 2.1.3HAVING 2.2联合查询 2.2.1内连接 2.2.2外连接 2.2.3自连接 2.3子查询 2.4合并查询 1.插入查询结果 在一张表中插入另一张表的查询结果。 语法为&#xff1a; insert into 表名 (列…

LMI相机配置步骤,使用Gocator2550相机

在此之前可以先浏览我编写的相机SDK通用类和LMISDK&#xff0c;进行配套观看 https://blog.csdn.net/m0_51559565/article/details/134404394 //LMI相机SDK https://blog.csdn.net/m0_51559565/article/details/134403745 //相机通用类1.启动LMI加速器 LMI加速器用于将相机…

Android studio配置Flutter开发环境报错问题解决

博主前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住也分享一下给大家 &#x1f449;点击跳转到教程 报错问题截图 报错原因已经给出&#xff1a; You need Java 11 or higher to build your app with this version of G…

rpmbuild 包名 version 操作系统信息部分来源 /etc/rpm/macros.dist

/etc/rpm/macros.dist openeuler bclinux src.rpm openssl-1.1.1f-13.oe1.src.rpm 打包名称结果 openeuler openssl-1.1.1f-13.aarch64.rpm bclinux openssl-1.1.1f-13.oe1.bclinux.aarch64.rpm 验证 修改openeuler配置文件macros.dist 重新在openeuler上执行rpmbuild…

基于XML的声明式事务

场景模拟 参考基于注解的声明式事务 修改Spring的配置文件 将Spring配置文件中去掉tx:annotation-driven标签&#xff0c;并添加配置&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org…