判断能否构成连续序列
描述
给定一个数组 a 以及一个整数 n ,需要令 a 中数加成 1 到 n 的序列。
例如 输入 a = [1,2,3], n = 6
[1, 2, 3]
可以构成 [1,2,3,4(1+3),5(2+3),6(3+3)]
,这时不需要添加元素
而a = [1,2], n = 6
则不能成立,需要补一个数 3 。本题需要求出要加上多少个数能完成要求。
样例
样例11
2输入: a = [1,3], n = 6
输出: 1
样例21
2输入: a = [1,5,10], n = 20
输出: 2
样例31
2输入: a = [1,2,2], n = 5
输出: 0
思路
一开始理解错了题意,以为将一个集合不断膨胀,然后判断能否构成一个新的序列,不行的话再加上一个数补充,这个过程中新产生的结果是可以再利用的,但是认真想一想, 发现集合中只要有 1 就能构成所有的序列,又何必要求呢? 这个题目显然新产生的结果是不能再次利用的,emmm,参考的其他的代码,需要学习一下写注释的风格。
注意整型可能溢出,题目会有数据 a = [1], n = 2^31 - 1
代码
1 | class Solution { |
另一份代码
1 | class Solution{ |