找出不在数组中的最小的那个数字
程序员文章站
2023-12-21 20:56:34
...
题目描述:
给定一个数组a=[4,23,8,9,12,1,2,5,3],在这个数组中,6没有出现,所以6是不在数组中的最小的数字。
解题思路:
主要是使用数组的一个特性,设数组中的数据是A[1]、A[2]、、、、、A[n],如果该数组中存在未被使用过的数,那么max(A)>n。这个特性类似于抽屉原理,因为总共n个数,如果每个数都被使用过,则最后到达第n个位置的时候,肯定有A[n]=n(这里假设下标是从1开始的)。由此,根据这个特性,便可以给出如下代码。
代码实现:
# 不在数组中的最小的数字
def minNum(arr):
arr.sort()
for i in range(0,len(arr)):
if arr[i]>(i+1):
return i+1
return len(arr)+1
a=[1,2,3,5]
print(minNum(a))