给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。
注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/duplicate-zeros
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:题目说原地变换,但是我不想原地,新建个列表,遇到零就再添加一个0,否则就添加本身,存储每一个元素,然后再置换就行了。
python3实现:
class Solution:
def duplicateZeros(self, arr: List[int]) -> None:
"""
Do not return anything, modify arr in-place instead.
"""
result = []
p = 0
while p <= len(arr) - 1:
result.append(arr[p])
if arr[p] != 0:
pass
else:
result.append(0)
p += 1
for i in range(len(arr)):
arr[i] = result[i]

一分钟打死四个蚊子,被咬了16个包,舒服了舒服了。