C语言 | Leetcode C语言题解之第413题等差数列划分

题目:

题解:

cpp 复制代码
int numberOfArithmeticSlices(int* nums, int numsSize) {
    if (numsSize == 1) {
        return 0;
    }

    int d = nums[0] - nums[1], t = 0;
    int ans = 0;
    // 因为等差数列的长度至少为 3,所以可以从 i=2 开始枚举
    for (int i = 2; i < numsSize; ++i) {
        if (nums[i - 1] - nums[i] == d) {
            ++t;
        } else {
            d = nums[i - 1] - nums[i];
            t = 0;
        }
        ans += t;
    }
    return ans;
}
相关推荐
倔强的小石头_15 分钟前
【C语言指南】函数指针深度解析
java·c语言·算法
jz_ddk6 小时前
[学习] C语言数学库函数背后的故事:`double erf(double x)`
c语言·开发语言·学习
无小道8 小时前
c++-引用(包括完美转发,移动构造,万能引用)
c语言·开发语言·汇编·c++
FirstFrost --sy9 小时前
数据结构之二叉树
c语言·数据结构·c++·算法·链表·深度优先·广度优先
森焱森9 小时前
垂起固定翼无人机介绍
c语言·单片机·算法·架构·无人机
秋说11 小时前
【PTA数据结构 | C语言版】两枚硬币
c语言·数据结构·算法
qq_5139704412 小时前
力扣 hot100 Day37
算法·leetcode
不見星空12 小时前
leetcode 每日一题 1865. 找出和为指定值的下标对
算法·leetcode
☆璇12 小时前
【数据结构】栈和队列
c语言·数据结构
Heartoxx14 小时前
c语言-指针与一维数组
c语言·开发语言·算法