题目:
解题思路;
先对数组进行升序排序,再用循环对比两相邻元素之间的差值。若出现不同,即不是等差数列。
时间复杂度:
空间复杂度:
int compare(const void* a, const void* b) {
return (*(int *)b - *(int *)a);
}
bool canMakeArithmeticProgression(int* arr, int arrSize) {
qsort(arr, arrSize, sizeof(int), compare);
long long int k = arr[1] - arr[0];
for (int i = 2; i < arrSize; i++) {
if (arr[i] - arr[i - 1] != k) return false;
}
return true;
}