题目描述
解题思路
抓住等差数列的特点,由于题给的数据一定是等差数列里的项但是不一定是按顺序给出,那么公差一定是这个序列中两项差值最小的!
求到公差以后,我们对序列进行排序,再让最后一项减去第一项除去公差就是第一项到最后一项有多少个数然后再加上1就是加上第一个就可以计算出一共有多少项。
这种数字题最核心的解法就是找规律和排序
要得满分还得考虑特殊情况,一般会留一至两样,既公差为0的情况,这时候直接输出序列长度既可
代码
n=int(input())
a=list(map(int,input().strip().split()))
a.sort()
chazhi=9999
for i in range(n):
if i<n-1:
if a[i+1]-a[i]<chazhi:
chazhi=a[i+1]-a[i]
if chazhi==0:
print(len(a))
else:
print(int((a[-1]-a[0])/chazhi+1))