Duplicate Zeros
https://leetcode.com/explore/learn/card/fun-with-arrays/525/inserting-items-into-an-array/3245
class Solution:
def duplicateZeros(self, arr: List[int]) -> None:
"""
Do not return anything, modify arr in-place instead.
"""
n = len(arr)
#新增的0的个数
zero = arr.count(0)
for i in range(n-1,-1,-1):
#当前index在当前新增0 的情况下没有溢出,加!
if i + zero < n:
arr[i+zero] = arr[i]
#当前值为0,如果当前值其实是溢出的0,那么真正新增的0其实为zero-1
#如果当前值没有溢出的0,之前新增的0也为zero-1,所以无论如何都是zero-1
if arr[i] == 0:
zero-=1
#加duplicate
if zero + i < n:
arr[i+zero] = 0
return arr
Last updated
Was this helpful?