给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
示例 1:
输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]
示例 2:
输入: nums = [0]输出: [0]
提示:
1 <= nums.length <= 104-231 <= nums[i] <= 231 - 1使用notZero记录所有不为零的数字个数,将所有不为零的数组元素覆盖掉数组中0的位置。第一次遍历接收后,会得到不为零的个数以及一个没有0存在的数组,接下来将该数组notZero之后的部分全部填充为0即可。代码如下
- class Solution {
- public void moveZeroes(int[] nums) {
- int notZero=0;
- int first;
-
- for(int i=0;i
- if(nums[i]!=0){
- nums[notZero++] = nums[i];
- }
- }
-
-
相关阅读:
机器学习基础:用 Lasso 做特征选择
ArduPilot添加新的惯导方案
华为机试 - 堆栈中的剩余数字
[需求管理-3]:什么是需求分析?常用的需求分析的流程与方法
线程安全(六)AQS 的工作原理
情人节程序员用HTML网页表白【情人节爱你的代码】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
封装了一个仿照抖音效果的iOS评论弹窗
Codesys 获取系统年、月、日、时、分、秒、星期几 +解决时区问题+ ST语言编程实现代码
算法 数据结构 递归插入排序 java插入排序 递归求解插入排序算法 如何用递归写插入排序 插入排序动图 插入排序优化 数据结构(十)
【C++】STL详解(十一)—— unordered_set、unordered_map的介绍及使用
-
原文地址:https://blog.csdn.net/zmbwcx/article/details/134289567