题解 2305: 蓝桥杯2019年第十届省赛真题-等差数列

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

找最大公约数也是最小的公差

解题思路:因为是从等差数列取的几个数,所以这几个数一定是公差的几倍或者就是公差,为了满足n个数都能匹配,所以我们要选择最小公差注意事项:参考代码:n=int(input())a=list(map(int,input().split()))a.sort()d=[]foriinrange(1,

利用最大公因数来求解

摘要:解题思路:注意事项:参考代码:# 求最大公因数 def cal(temp_1, temp_2):     if(temp_1 == temp_2):         return(temp_1)……

这题主要是考虑所有数相等的情况,即公差为0

解题思路:对输入排序,然后判断是否公差为0,最后使用等差数列求项公式注意事项:所有数相等的情况参考代码:n=int(input())arr=list(map(int,input().split()))arr.sort()ifarr.count(arr[0])==len(arr):print(len(a

平凡の解法

解题思路:我们看到这个题目,可以很快的转化为作为求排序后数组的两两之间的最小问题,当然也可以不需要排序,当然我这边直接偷懒直接sort,但是你追求效率的话你也可以直接快排,二分排,创建一个比较的大的假定公差d,然后一个for循环求最小值就可以了,不排序的话可以直接abs,当然注意边界情况。

Python满分答案

解题思路:先把列表排序,再找出最小的差值注意事项:参考代码:n=int(input().strip())ls=list(map(int,input().split()))ls.sort()ls_1=[]t=0foriinrange(n-1,0,