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

移动零,leetCode热题100,C++实现

题目来源:leetCode

283. 移动零 - 力扣(LeetCode)

解法

class Solution {
public:void moveZeroes(vector<int>& nums) {int n = nums.size(), left = 0, right = 0;while (right < n) {if (nums[right]) {swap(nums[left], nums[right]);left++;}right++;}}
};

双指针法,right遍历数组,遇到非0则与left进行交换

举例 [ 0,1,2,0,3],起始都指向第一个0,right后移,指向下标1,此时交换0和1,数组变成[1,0,2,0,3]

然后left++,left指向下标1,right++,指向下标2,再次交换,数组变成[1,2,0,0,3]

然后left++,left指向下标2,right++,指向3,此时是0,right++,指向下标4,也就是指向3,交换后变成[1,2,3,0,0]

另一种情况[1,2,3,0,0,4],起始时,right指向1,为非0,则交换,也就是1和1交换,不变,然后left++,right++,都指向2,再次交换,以此类推,这种情况会自己和自己交换,所以不影响

http://www.xdnf.cn/news/19386.html

相关文章:

  • IP-Guard支持修改安全区域密级文字和密级级数
  • 嵌入式学习日记(38)HTTP
  • Java学习笔记-多线程基础
  • Kafka 4.0 生产者配置全解析与实战调优
  • Go语言流式输出实战:构建高性能实时应用
  • 数据结构(力扣刷题)
  • 蜂窝通信模组OpenCPU的介绍
  • REST-assured获取响应数据详解
  • 手写链路追踪优化-自动全局追踪代替局部手动追踪
  • 做一个实用的节假日工具
  • Java面试-spring boot框架
  • 98、23种设计模式之代理模式(7/23)
  • 【SpringMVC】SSM框架【二】——SpringMVC超详细
  • ModuleNotFoundError: No module named ‘cairosvg‘
  • 浔川社团阅读量破历史记录
  • 得物25年春招-安卓部分编程题
  • GD32入门到实战21--输入捕获
  • 【C++】日期类实现详解:代码解析与复用优化
  • C#正则表达式与用法
  • 【基础-单选】关于Tabs组件页签的位置设置,下面描述错误的是
  • 免费在线图片合成视频工具 ,完全免费
  • uni.onBLECharacteristicValueChange接收到数据,返回的value为{}的原因及其获取方法
  • 佳易王钟表维修养护管理系统:开启钟表维修高效管理新篇章​就#软件操作教程
  • Mysql 学习day 2 深入理解Mysql索引底层数据结构
  • React前端开发_Day6-Day9_极客园项目
  • C语言 - 输出参数详解:从简单示例到 alloc_chrdev_region
  • Spring AI 的应用和开发
  • 如何简单建设一个网站,让用户快速找到你。
  • 在PowerPoint和WPS演示让蝴蝶一直跳8字舞
  • Python生成免安装exe