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

示例:

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:

必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。

思路一:遍历将非0的值一次填到索引j所在的位置,最后将j+1之后的数置0;

class Solution {
public:void moveZeroes(vector<int>& nums) {int n = nums.size();if(0==n)return;int j=0;for(int i=0;i<n;++i){if(nums[i]!=0)nums[j++] = nums[i];}for(int i=j;i<n;++i)nums[i]=0;}
};

思路二:快慢指针的方法,刚开始自己写的,没有上面方法好理解,但是比较快

class Solution {
public:void moveZeroes(vector<int>& nums) {int n = nums.size();if(0==n)return;int zeroIndex = 0;int nozzeroIndex = 0;while(zeroIndex<n && nozzeroIndex<n){if(zeroIndex<=nozzeroIndex && nums[zeroIndex]==0 && nums[nozzeroIndex]!=0){nums[zeroIndex] = nums[nozzeroIndex];nums[nozzeroIndex] = 0;zeroIndex++;nozzeroIndex++;}else if(nums[zeroIndex]==0){nozzeroIndex++;}else if(nums[nozzeroIndex]!=0){zeroIndex++;}else{zeroIndex++;nozzeroIndex++;}}}
};

移动零—leetcode283相关推荐

  1. leetcode283.移动零

    题目描述 题目分析 在写简单题放松,看到这道题第一个想法是用STL库函数,虽然知道大概要用双指针之类的,但是库函数爽哇. class Solution {public:void moveZeroes( ...

  2. leetcode283. 移动零 比官方更好的解法。

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作, ...

  3. Leetcode--283. 移动零

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作, ...

  4. 零基础入门--中文命名实体识别(BiLSTM+CRF模型,含代码)

    https://github.com/mali19064/LSTM-CRF-pytorch-faster 中文分词 说到命名实体抽取,先要了解一下基于字标注的中文分词. 比如一句话 "我爱北 ...

  5. LeetCode简单题之复写零

    题目 给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移. 注意:请不要在超过该数组长度的位置写入元素. 要求:请对输入的数组 就地 进行上述修改,不要从 ...

  6. LeetCode简单题之柠檬水找零

    题目 在柠檬水摊上,每一杯柠檬水的售价为 5 美元.顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元.你必 ...

  7. LeetCode简单题之移动零

    题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上 ...

  8. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  9. 图像零交叉点,视频生成,视频识别,视频摘要,视频浓缩

    图像零交叉点,视频生成,视频识别,视频摘要,视频浓缩 一.视频生成,视频识别,视频摘要,视频浓缩 视频生成与视频识别 视频分析的两大任务,前者侧重于对下一帧的预测,而前者则侧重于视频内容的理解.由于视 ...

最新文章

  1. 【GCN】万字长文带你入门 GCN
  2. php 静态类在worker,GatewayWorker的Events.php中调用Worker::runAll()出现异常
  3. RecyclerView Item 布局宽高无效问题探究
  4. 命令行下mysql新建用户及分配权限
  5. MySQL 优化 —— EXPLAIN 执行计划详解
  6. requirejs 定义模块中含有prototype
  7. 通俗易懂!视觉slam第十部分——贝叶斯估计
  8. wps python 自动化_请教下 Python 高手,如何用 Python 自动化操作 Excel?
  9. Linux的文件的打包(tar方法)
  10. 计算机网络sequence number,计算机网络
  11. latex字母/数字双线字体
  12. 华为U2000北向接口开发中遇到的坑——获取HW_MSTPInventory管理对象失败
  13. 阿里云ACE认证之理解CDN技术 1
  14. catalina java opts_CATALINA_OPTS与JAVA_OPTS – 有什么区别?
  15. Shopee优选卖家真的重要吗?
  16. LAIC2022之犯罪事实实体识别(基于飞桨UIE+半监督)
  17. 经典游戏----飞机大战
  18. supervisor的程序控制修改参考方案
  19. python画雷达图-python 雷达图
  20. echarts实现西安地铁图

热门文章

  1. css预编译其器,CSS预处理器之——Less
  2. php内容管理系统开源源码,fcontex 开源内容管理系统 php版 v1.0.3
  3. java 读取word书签_Java 添加、读取、删除Word书签
  4. excel 插入图片 NPOI
  5. MongoDB数据导入hbase + 代码
  6. 牛客网(剑指offer) 第六题 旋转数组的最小数字
  7. snmp-smtp=smb扫描
  8. matlab球面波衍射,单色点源矩孔菲涅耳衍射光场的计算与模拟
  9. 英语发音表及读法_如何一个人练习英语口语?
  10. [论文阅读] (11)ACE算法和暗通道先验图像去雾算法(Rizzi | 何恺明老师)