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

1.1 双指针专题:移动零(easy)

一、题目链接

283. 移动零

二、题目描述

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

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

⽰例 1:

        输⼊: nums = [0,1,0,3,12]

        输出: [1,3,12,0,0]

⽰例 2:

        输⼊: nums = [0]

        输出: [0]

三、解法

思路

双指针 dest 和 cur 将数组划分为三个区间:

  • [0,dest]:全部非零元素
  • [dest + 1,cur - 1]:全部零元素
  • [cur,nums.size()-1]:未处理区间

流程

四、代码

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

运行结果


http://www.mrgr.cn/news/93990.html

相关文章:

  • Dify平台部署全记录
  • WinForm模态与非模态窗体
  • 虚幻基础:动画系统
  • 无人机避障——XTDrone中运行VINS-Fusion+Ego-planner进行路径规划
  • 【愚公系列】《AI Agent技术、应用与商业》003-Al Agent 的分类方式
  • 【NexLM 开源系列】如何封装多个大模型 API 调用
  • 在线json转ArkTs-Harmonyos
  • π0源码剖析——从π0模型架构的实现(如何基于PaLI-Gemma和扩散策略去噪生成动作),到基于C/S架构下的模型训练与部署
  • Smart contract -- 自毁合约
  • 忘记dedecms后台超级管理员账号和密码的解决方案
  • ROS实践(二)构建Gazebo机器人模型文件urdf
  • 大语言模型 (LLM) 基础知识
  • Java 大视界 -- Java 大数据在智慧农业农产品质量追溯与品牌建设中的应用(124)
  • 自监督预训练算法核心原理
  • 【论文阅读】VAD: Vectorized Scene Representation for Efficient Autonomous Driving
  • 蓝桥杯备赛日记【1】(c++赛道)
  • MySQL的安装及配置
  • docker私有仓库配置
  • delphi 正则提取html中的内容
  • Hugging Face的Transformers核心模块:Pipelines(参数说明,各种模型类型调用案例)