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

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

筛选

等差数列(c++)

解题思路:去ACwing那个网站里面写这个题,测试点真的坑,这个网站测试数据没卡这种,比如输入3个2,6,12。如果是按照找所以中差值最小的作为公差,就GG了,看了一下大佬的思路,用所有的数跟第一个数做差,然后不停的比较它们的最大公约数gcd。

平凡の解法

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

等差数列常规做法

```cpp#includeusingnamespacestd;longlonga[100010];longlongn,m=1000,ji;intmain(){cin>>n;for(longlongi=0;i>a[i];}sort(a,a+n);//快速排序否则超时for(longlongi=1;i