在Python中包含从1到N的元素的数组中查找四个缺失的数字
假设我们有一个由不同数字组成的数组,其中每个数字都在[1,N]范围内,数组大小为(N-4),并且没有重复单个元素。因此,我们可以了解数组中缺少从1到N的四个数字。我们必须以排序的方式找到这4个缺失的数字。
因此,如果输入像A = [2、8、4、13、6、11、9、5、10],那么输出将是[1、3、7、12]
为了解决这个问题,我们将遵循以下步骤-
temp_arr:=大小为4且全为0的数组
对于0到A的范围内的i,执行
如果A的temp mod大小不为零,则
除此以外,
temp_arr [A的温度mod大小-1]:= -1
temp_arr [(A的温度mod大小)+ A的大小-1]:= -1
A [temp-1]:= A [temp-1] *(-1)
temp:= | A [i] |
如果temp <= A的大小,则
否则,当temp> A的大小时,则
对于0到A的范围内的i,执行
显示我+1
如果A [i]> 0,则
对于范围在0到temp_arr范围内的我,执行
显示大小A + i + 1
如果temp_arr [i]> = 0,则
示例
让我们看下面的实现以更好地理解-
def find_missing_nums(A) :temp_arr = [0]*4
for i in range(0,len(A)) :
temp = abs(A[i])
if (temp <= len(A)) :
A[temp - 1] = A[temp - 1] * (-1)
elif (temp > len(A)) :
if (temp % len(A)) :
temp_arr[temp % len(A) - 1] = -1
else :
temp_arr[(temp % len(A)) +len(A) - 1] = -1
for i in range(0, len(A) ) :
if (A[i] > 0) :
print((i + 1) , end=" ")
for i in range(0, len(temp_arr)) :
if (temp_arr[i] >= 0) :
print((len(A) + i + 1) , end=" ")
A = [2, 8, 4, 13, 6, 11, 9, 5, 10]
find_missing_nums(A)
输入值
[2, 8, 4, 13, 6, 11, 9, 5, 10]
输出结果
1 3 7 12
以上是 在Python中包含从1到N的元素的数组中查找四个缺失的数字 的全部内容, 来源链接: utcz.com/z/340991.html