代码随想录——移动零
题目
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明:
必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数
思路
暴力法使用两层for循环,模拟数组删除元素(向前覆盖)的过程
双指针法:使用双指针在数组中移除元素,可以达到O(n)的时间复杂度
相当于对整个数组移除元素0,然后slowIndex之后都是移除元素0的冗余元素,把这些元素都赋值为0即可
流程图如下:
java代码如下:
class Solution{public void moveZeroes(int[] nums){int slow = 0;//保证更新后的nums前面没有0元素for(int fast = 0; fast < nums.length; fast++){if(nums[fast] != 0){//如果当前元素不为0,则同时后移,如果是0则fast直接下一个,继续保证0元素被后面一个元素覆盖nums[slow++] = nums[fast];}}//最后将后面的元素全变成0for(int j = slow; j < nums.length; j++){nums[j] = 0;}}
}
代码随想录——移动零相关推荐
- 代码随想录35——贪心:860柠檬水找零、406根据身高重建队列、452用最少数量的箭引爆气球
文章目录 1.860柠檬水找零 1.1.题目 1.2.解答 2.406根据身高重建队列 2.1.题目 2.2.解答 3.452用最少数量的箭引爆气球 3.1.题目 3.2.解答 1.860柠檬水找零 ...
- 代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球
代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球 860.柠檬水找零 406. 根据身高重建队列 452. 用最少数量的箭引爆气球 860. ...
- 【代码随想录】数组刷题
数组刷题 二分 二分查找* 搜索插入位置 在排序数组中查找元素的第一个和最后一个位置* x 的平方根 有效的完全平方数 双指针 移除元素 删除排序数组中的重复项 移动零 比较含退格的字符串 有序数组的 ...
- 【代码随想录】-动态规划专题
文章目录 理论基础 斐波拉契数列 爬楼梯 使用最小花费爬楼梯 不同路径 不同路径 II 整数拆分 不同的二叉搜索树 背包问题--理论基础 01背包 二维dp数组01背包 一维数组(滚动数组) 装满背包 ...
- 代码随想录训练营day43
目录 题目一:最后一块石头的重量|| 题目二:目标和 题目三:一和零 题目一:最后一块石头的重量|| 力扣题目链接 题目描述: 有一堆石头,用整数数组 stones 表示.其中 stones[i] 表 ...
- 代码随想录训练营day35
目录 题目一:柠檬水找零 解法: 题目二:根据身高重建队列 解法一:从小到大 解法二: 从大到小 题目三:用最少数量的箭引爆气球 解法: 题目一:柠檬水找零 力扣题目链接 题目描述: 在柠檬水摊上,每 ...
- 《代码随想录》三刷,与诸君共勉,秋招见!
我一直都是建议大家尽量把<代码随想录> 至少刷两遍,刷三遍是更好的. 这样才能对 里面涉及的到算法知识融会贯通. 刷题是在不断挑战自己的过程,经常会自我怀疑: 这么简单题,我怎么想不出来? ...
- 【代码随想录】二刷-动态规划
动态规划 代码随想录 解题步骤: 确定dp数组 确定递推公式--递推公式决定dp数组要如何初始化 dp数组如何初始化 确定遍历顺序 举例推导dp数组 509. 斐波那契数 class Solution ...
- 【代码随想录】二刷-数组
数组 <代码随想录> 二分查找 704. 二分查找 方法1 注意: 边界控制. 前提是有序数组. 循环控制 解释: 这里使用我最好理解的一种方式. 使用mid控制下标访问,nums[mid ...
最新文章
- mysql从另一张获取数据的方法
- TensorFlow 2.0开发者预览版发布
- python列表取出元素_python中的列表,添加元素,获取元素,删除元素,列表分片,常用操作符...
- 计算机网络实验一:ping、ipconfig、netstat、tracert、arp命令
- postgreSQL入门01-安装
- K8S的SDN容器网络解决方案【机制篇】
- 学术科普 | 漫威电影中的智能大脑
- 美妆海报不会做? PSD分层模板带你轻松掌握!
- 无法使用带括号的初始值设定项初始化数组_leetcode32. 最长有效括号
- Android 相关翻译
- 破解Quartus II 8.0
- USB_CAN-2A使用CANTest解析J1939
- 信息安全管理体系--文件的等级划分
- 怎样压缩ppt的大小?
- vue项目安装vuex报错:Object(...) is not a function“
- 【现代信号处理】 15 - 谱分析基础和周期图谱分析
- HTML期末作业-我的大学宿舍
- win7安不了python_win7下安装python失败问题
- Vue3中关于getCurrentInstance的大坑
- 可视化设计-设备篇(LED屏幕)