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

数据结构:双指针—移动0(OJ283)

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2:

输入: nums = [0]
输出: [0]
class Solution {
public:void moveZeroes(vector<int>& nums) {for(int dest=-1,cur=0;cur<nums.size();cur++){if(nums[cur]){swap(nums[++dest],nums[cur]);}}}
};

思路:

数组划分,数组分块

利用数组下标充当指针

两个指针的作用:

cur:从左往右扫描数组,遍历

dest:已处理的区间内,非0元素的最后一个位置。

(类似快排)

http://www.lryc.cn/news/447241.html

相关文章:

  • LeetCode - 850 矩形面积 II
  • Jenkins Pipeline 中通过勾选参数来控制是否构建 Docker 镜像
  • C++入门基础知识86(实例)——实例11【计算自然数之和】
  • ChatGPT与R语言融合技术在生态环境数据统计分析、绘图、模型中的实践与进阶应用
  • OpenAi以及Dify结合生成Ai模型
  • 【漏洞复现】用友 UFIDA /portal/pt/file/upload 任意文件上传漏洞
  • C:内存函数
  • 【Web】御网杯信息安全大赛2024 wp(全)
  • VC++同时处理ANSI和Unicode字符集,除了使用TCHAR和_T()宏外,还有其他方法可以实现吗?
  • MATLAB定位程序与讲解【专栏介绍】
  • 机器学习3--numpy
  • Linux之我不会
  • 音视频整体解码流程和同步流程
  • 1.2 HuggingFists安装说明-Linux安装
  • 四,MyBatis-Plus 当中的主键策略和分页插件的(详细实操使用)
  • Win32打开UWP应用
  • C# C++ 笔记
  • 关于最小二乘法
  • 国产OpenEuler与Centos全面之比较
  • Java面试题一
  • LabVIEW提高开发效率技巧----自动化测试和持续集成
  • 开源链动 2+1 模式 S2B2C 商城小程序:激活 KOC,开启商业新征程
  • 什么是Node.js?
  • 即插即用篇 | DenseNet卷土重来! YOLOv8 引入全新密集连接卷积网络 | ECCV 2024
  • 智能监控,守护绿色能源:EasyCVR在电站视频监控中心的一站式解决方案
  • 【BUG】静读天下|静读天下无法设置段间距解决方案
  • 希捷电脑硬盘好恢复数据吗?探讨可能性、方法以及注意事项
  • java通过webhook给飞书发送群消息
  • 每日一题——第一百零九题
  • 街头摊贩检测系统源码分享