CodeACM
HOT 100 · 双指针 · LC 283

移动零:ACM 模式刷题

按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。

题目描述

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

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

输入格式

第一行包含一个整数 n,表示数组长度。

第二行包含 n 个整数 nums[i],相邻数字以空格分隔。

输出格式

输出一行 n 个整数,表示移动零之后的数组,相邻数字以空格分隔。

数据范围

  • 1 ≤ n ≤ 10⁴
  • −2³¹ ≤ nums[i] ≤ 2³¹ − 1

公开样例

样例 1

输入

5
0 1 0 3 12

输出

1 3 12 0 0

非零元素 1、3、12 的相对顺序保持不变。

样例 2

输入

1
0

输出

0

数组中只有一个零,结果不变。

练习建议

先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。