【C语言刷力扣】1502.判断能否形成等差数列

题目:

解题思路;

先对数组进行升序排序,再用循环对比两相邻元素之间的差值。若出现不同,即不是等差数列。

时间复杂度:

空间复杂度:

复制代码
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;
}
相关推荐
!停4 小时前
C语言单链表
c语言·数据结构·算法
南行*4 小时前
C语言Linux环境编程
linux·c语言·开发语言·网络安全
独自破碎E4 小时前
【队列】求二叉树的层序遍历
leetcode
闻缺陷则喜何志丹5 小时前
【回文 字符串】3677 统计二进制回文数字的数目|2223
c++·算法·字符串·力扣·回文
你怎么知道我是队长5 小时前
C语言---printf函数使用详细说明
c语言·开发语言
Tisfy5 小时前
LeetCode 0085.最大矩形:单调栈
算法·leetcode·题解·单调栈
消失的旧时光-19435 小时前
函数指针 + 结构体 = C 语言的“对象模型”?——从 C 到 C++ / Java 的本质统一
linux·c语言·开发语言·c++·c
mit6.8245 小时前
出入度|bfs|状压dp
算法
hweiyu005 小时前
强连通分量算法:Kosaraju算法
算法·深度优先
源代码•宸5 小时前
Golang语法进阶(定时器)
开发语言·经验分享·后端·算法·golang·timer·ticker