📅  最后修改于: 2023-12-03 15:28:41.933000             🧑  作者: Mango
给定一个长度为n的数组a,其中存放了1~n的所有整数,但其中缺失了一个整数。你可以给出数组a中的任意元素,要求输出缺失的整数。
第一行一个整数n。
第二行n个整数,第i个整数为ai(a[i]>0),保证这n个整数两两不同且均在1~n之间。
输出仅一行,即缺失的整数。
4
1 4 3
2
5
5 3 1 2
4
这道题目可以用求和公式求出1~n的和,再减去数组a中所有元素的和,就可以得到缺失的整数。
n = int(input())
a = list(map(int, input().split()))
print(int(n * (n + 1) / 2 - sum(a)))
本解法只需要一次遍历,时间复杂度为O(n)。