📜  门| GATE-CS-2003 |问题25(1)

📅  最后修改于: 2023-12-03 15:28:41.933000             🧑  作者: Mango

题目描述

给定一个长度为n的数组a,其中存放了1~n的所有整数,但其中缺失了一个整数。你可以给出数组a中的任意元素,要求输出缺失的整数。

输入格式

第一行一个整数n。

第二行n个整数,第i个整数为ai(a[i]>0),保证这n个整数两两不同且均在1~n之间。

输出格式

输出仅一行,即缺失的整数。

样例输入1
4
1 4 3
样例输出1
2
样例输入2
5
5 3 1 2
样例输出2
4
解题思路

这道题目可以用求和公式求出1~n的和,再减去数组a中所有元素的和,就可以得到缺失的整数。

参考代码
n = int(input())
a = list(map(int, input().split()))
print(int(n * (n + 1) / 2 - sum(a)))
时间复杂度

本解法只需要一次遍历,时间复杂度为O(n)。