给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置

leetcode+面试:给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置

示例:

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

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

说明:

1.必须在原数组上操作,不能拷贝额外的数组。

2.尽量减少操作次数。

package leetCode01;

/**

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

* 说明:

* 1.必须在原数组上操作,不能拷贝额外的数组。

* 2.尽量减少操作次数。

* @author 汤小萌

*

*/

public class Demo10 {

public void moveZeros(int[] nums) {

// 相当于定义了两个指针

int slow = 0, fast = 0;

while(fast < nums.length) {

if(nums[fast] != 0) {

nums[slow] = nums[fast];

slow++;

fast++;

} else { // 一旦这个数组上的数字是0,那么fast指针就需要往前走

// slow指针停留在0这个位置,在等待着fast发现了非0的数字将0位置的slow指针覆盖掉

fast++;

}

}

// slow跟fast相差了多少,就说明这个数组有多少个0,在上面填充完元素之后,

// 就需要将娄底漏掉的0补上

for(int i = slow; i < nums.length; i++) {

nums[i] = 0;

}

}

}

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

参考:leetcode

leetcode+面试:给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置相关推荐

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

    每日一题:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 2020年11月19日,力扣,简单,移动零 一.题目描述 给定一个数组 nums,编写一个函数 ...

  2. 给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。

    笔者初涉<算法设计与分析>这门专业课,在做一些算法设计题的过程中遇到一些小感悟,特此记录和大家分享. 下面直接给出算法题目: 给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高 ...

  3. 给定一个整数N,那么N的阶乘N!末尾有多少个零呢?

    题目:给定一个整数N,那么N的阶乘N!末尾有多少个零呢? 末尾有几个零?如果我们从哪些数相乘可以的出10,这个角度来解决这个问题,这就会变成简单.对质因数进行分解由于10=2*5,即每一对2和5就可以 ...

  4. 将数组中数字0元素移动到数组末尾

    将数组中的0元素移动到末尾具有很多种方法 只介绍 一种自认为好理解的方法 思想:新创建一个与原数组长度相同的数组,将原来数组中的非零元素移动过来即可,新数组中只显示原数组非零元素,其余位置为默认元素值 ...

  5. 给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置. 要求:从键盘输入两个字符串,第一个是给定的字符串,第二个是子串。

    给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置. 要求:从键盘输入两个字符串,第一个是给定的字符串,第二个是子串. 输入 abcd23abc34bcd bc 输出 1 ...

  6. 【leetcode】给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff数对。

    给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对.这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k ...

  7. LeetCode 2070. 每一个查询的最大美丽值(离线查询+排序+优先队列)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个二维整数数组 items ,其中 items[i] = [pricei, beautyi] 分别表示每一个物品的 价格 和 美丽值 . 同时给你一 ...

  8. php数组只保留键值,php合并数组并保留键值的实现方法

    php合并数组,一般会使用array_merge方法. array_merge - 合并一个或多个数组 array array_merge ( array $array1 [, array $... ...

  9. php数组键值一样的合并,php合并数组并保留键值 php合并数组并保留键值的实现方法...

    想了解php合并数组并保留键值的实现方法的相关内容吗,傲雪星枫在本文为您仔细讲解php合并数组并保留键值的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:php数组合并保留键值,下面大家一起 ...

最新文章

  1. 读这部IT小说时,我有一种看英雄大片的莫名感动
  2. C++多态中虚函数的深入理解
  3. 历届试题 核桃的数量
  4. Day11多态部分-3
  5. sklearn逻辑回归参数设置_【机器学习笔记】:逻辑回归实战练习(二)
  6. 模糊PID控制在自动光电整纬装置中的应用
  7. 学习笔记——web安全深度剖析
  8. 老弟教你用CSS和JS实现曾经风靡一时的微信打飞机游戏
  9. _beginthread 和 CreateThread 区别
  10. 芯片里面长啥样?扫描电子显微镜放大10000倍告诉你!
  11. “5杯水,怎么分给6个领导?” 答案暴露认知层次...
  12. learning_git_from_Liao
  13. 非此即彼的逻辑错误_Argument常见逻辑错误及描述 【出国英语】
  14. PDF 预览和下载你是怎么实现的?
  15. 宽带拨号上网时,Win10代理设置无效
  16. SendEMail 发送邮件
  17. 将最大位1000位的16进制转化位8进制(蓝桥杯)
  18. Dos命令行修改文件夹路径里的文件
  19. php oa 开发,OA开发文档_开源OA二次开发说明 - PHPOA软件文档 www.phpoa.cn
  20. 图片验证码--BufferedImage 图片验证码去除干扰线

热门文章

  1. angularjs 让当前路由重新加载_Vuerouter(路由)
  2. python搭建博客系统_用Pelican快速搭建极简静态博客系统
  3. ​综述 | SLAM回环检测方法
  4. 年薪25-50w| 虚拟现实创新中心三维重建算法高级研究员招聘
  5. Python安装库较慢问题,Python报错pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool解决方法
  6. LiDAR-Camera Fusion for 3D Reconstruction
  7. docker 使用python 镜像运行python脚本
  8. ICLR 2022 under review|化学反应感知的分子表征学习
  9. Mol Plant | 多家单位联合发布小麦组学大数据可视化和在线分析平台WheatOmics
  10. 科研赢家比其他人多了哪一个特点?