复制 Python 中的零
假设我们有一个定长的整数数组,我们需要复制每个出现的零,同时将剩余元素移至右侧。
请注意,原始数组长度之外的元素不会被写入。
所以,如果该数组为 [1,0,2,3,0,4,5,0],那么修改之后它将为 [1,0,0,2,3,0,0,4]
为了解决这个问题,我们将按照以下步骤操作 −
- 将数组复制到另一个数组 arr2,设置 i 和 j 为 0
- 当 i < arr 的大小时 −
- 如果 arr2[i] 为零,那么
- arr[i] := 0
- 将 i 加 1
- 如果 i < arr 的大小时,那么 arr[i] := 0
- 否则,arr[i] := arr2[j]
- 将 i 和 j 加 1
- 如果 arr2[i] 为零,那么
示例
让我们看看以下实现,以便更好地理解 −
class Solution(object): def duplicateZeros(self, arr): arr2 = [i for i in arr] i=0 j = 0 while i < len(arr): if not arr2[j]: arr[i] = 0 i+=1 if i<len(arr): arr[i] = 0 else: arr[i] = arr2[j] j+=1 i+=1 return arr ob1 = Solution() print(ob1.duplicateZeros([1,0,2,3,0,4,5,0]))
输入
[1,0,2,3,0,4,5,0]
输出
[1,0,0,2,3,0,0,4]
广告