📅  最后修改于: 2023-12-03 14:50:02.524000             🧑  作者: Mango
给定一个整数数组A,你的任务是编写一个函数,该函数将A中元素的数量增加1,以便A[i]+1也存在于数组中。你需要返回这个已经修改后的整数数组。
输入:
A = [1, 2, 3]
输出:
[1, 2, 2, 3, 4]
解释:在原始数组中, 1, 2 和 3 都存在。 现在,我们将 2 增加1,得到 3,它现在也存在于数组中。 同样地,我们将 3 增加1,得到 4,它现在也存在于数组中。
输入:
A = [1, 4, 7, 9]
输出:
[1, 4, 7, 9, 5, 10]
解释:在原始数组中, 1, 4, 7 和 9 都存在。 现在,我们将 5 增加1,得到 6,它现在也存在于数组中。 同样地,我们将 10 增加1,得到 11,它现在也存在于数组中。
我们可以使用两个指针i和j遍历整个数组。当我们发现A[j]-A[i]>1时,我们向A数组添加A[i]+1到A[j]-1之间的所有整数,以满足A[i]+1到A[j]之间的每个整数都存在于A中。这些整数可以使用一个while循环和一个计数器来添加到数组中。
def add_element(A):
i = j = 0
n = len(A)
while j < n:
if A[j] - A[i] == 0:
j += 1
elif A[j] - A[i] == 1:
i += 1
j += 1
else:
count = 1
while A[i]+count < A[j]:
A.insert(j, A[i]+count)
count += 1
i = j = j + count - 1
count = 1
while i+count in A:
count += 1
A.extend([i+count])
return A