📜  算法测验|须藤放置[1.7] |问题13(1)

📅  最后修改于: 2023-12-03 15:27:26.505000             🧑  作者: Mango

算法测验 - 须藤放置[1.7] - 问题13

介绍

这是一道算法测验题,题目来源于游戏《须藤放置》第1章第7节。

本题要求编写一个函数,实现对一个整数数组进行分类,将其中的0元素移到数组末尾,并保持其他元素的顺序不变。

函数签名
def move_zeros(array: List[int]) -> List[int]:
    pass
输入
  • array: 整数数组,元素数量不超过100,元素范围在-100到100之间。
输出
  • 返回新的整数数组,将其中的0元素移到了数组末尾,并保持其他元素的顺序不变。
示例
assert move_zeros([0,1,0,3,12]) == [1,3,12,0,0]
assert move_zeros([1,0,0,2,2,2,3]) == [1,2,2,2,3,0,0]
assert move_zeros([1,2,0,0,0,3,6]) == [1,2,3,6,0,0,0]
实现思路
  • 遍历数组,将非0元素按原来的顺序插入一个新的数组。
  • 记录插入的非0元素个数non_zero_count
  • 将剩余的元素以0填充。
  • 返回新数组。