在Python中找到数组中第k个缺失的正整数的程序
更多Python相关文章,请阅读:Python 教程
介绍
在Python中,假设我们有一个排好序的正整数数组arr和一个正整数k。我们想要找出在数组中缺失的前k个正整数。
例如,如果我们有数组[2,3,5,9]和k = 2,则数组中缺失的前两个正整数是4和6。因此,我们的程序应该返回[4,6]。
在本文中,我们将介绍如何在Python中找到数组中缺失的前k个正整数的程序。
算法
我们可以使用循环迭代的方法来找到数组中缺失的前k个正整数。
具体实现方式如下:
1.创建一个空的列表missing。
2.创建一个变量num并将其初始化为1(因为我们要找到数组中的正整数)。
3.迭代整个数组arr:
- 如果arr中的一个元素等于num,则将num加1。
- 否则,将num添加到missing列表中。
- 如果missing列表中的元素达到了k个,则返回missing列表。
4.如果迭代完整个数组后,missing中的元素不足k个,则我们需要在数组arr的末尾继续添加正整数,直到missing中的元素数达到k个。
下面是完整的Python代码实现:
def findMissing(arr, k):
missing = []
num = 1
for i in arr:
if i == num:
num += 1
else:
missing.append(num)
num += 1
if len(missing) == k:
return missing
while len(missing) < k:
missing.append(num)
num += 1
return missing
示例
我们可以使用以下代码测试以上实现:
arr = [2,3,5,9]
k = 2
print(findMissing(arr, k))
arr = [1,2,3,4,5,8,9,10]
k = 3
print(findMissing(arr, k))
arr = [1,1,1,1,1,1]
k = 4
print(findMissing(arr, k))
输出:
[4, 6]
[6, 7, 11]
[2, 3, 4, 5]
结论
在Python中找到数组中缺失的前k个正整数不难。通过简单的循环迭代,我们可以轻松地找到数组中的缺失值并返回它们。
此外,此算法的复杂度为O(n),其中n是数组的长度。
极客笔记