力扣算法笔记 —— 等差数列
题目信息:
给你一个数字数组
arr
。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。
如果可以重新排列数组形成等差数列,请返回
true
;否则,返回false
。
示例:
输入:arr = [3,5,1] 输出:true 解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。
思路方法:
感觉现在算法题的重点是要仔细读题了,我看题的时候只看到了对数组重新排序,我就以为是随意无序排序的数组,后来发现是有序排序,然后刚好C#里还有个现成的有序排序API,这道题真的是仔细看题之后就很简单。
方法:
public class Solution {
public bool CanMakeArithmeticProgression(int[] arr)
{
Array.Sort(arr);
int value=arr[1]-arr[0];
for(int i=0;i<arr.Length-1;i++)
{
if(arr[i+1]-arr[i]!=value)
{
return false;
}
}
return true;
}
}