文章目录
1. 题目2. 描述3. 思路4. 实现
1. 题目
移动零
2. 描述
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
3. 思路
声明一个 count 用于计数数组中不为 0 的元素个数然后遍历数组,将不为 0 的元素存入数组前 count 位然后将剩下的 nums.length - count 位置为 0此时主要进行遍历操作,时间复杂度为
O
(
n
)
O(n)
O(n).
4. 实现
public void moveZeroes(int[] nums
) {
int count
= 0;
for (int item
: nums
) {
if (item
!= 0) {
nums
[count
++] = item
;
}
}
for (int i
= count
; i
< nums
.length
; i
++) {
nums
[i
] = 0;
}
}