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;
}
相关推荐
独自破碎E几秒前
【队列】求二叉树的层序遍历
leetcode
你怎么知道我是队长11 分钟前
C语言---printf函数使用详细说明
c语言·开发语言
Tisfy15 分钟前
LeetCode 0085.最大矩形:单调栈
算法·leetcode·题解·单调栈
消失的旧时光-194316 分钟前
函数指针 + 结构体 = C 语言的“对象模型”?——从 C 到 C++ / Java 的本质统一
linux·c语言·开发语言·c++·c
代码游侠29 分钟前
学习笔记——ESP8266 WiFi模块
服务器·c语言·开发语言·数据结构·算法
倦王30 分钟前
力扣日刷26110
算法·leetcode·职场和发展
Q741_1471 小时前
C++ 队列 宽度优先搜索 BFS 力扣 429. N 叉树的层序遍历 每日一题
c++·算法·leetcode·bfs·宽度优先
jinmo_C++1 小时前
Leetcode矩阵
算法·leetcode·矩阵
️停云️12 小时前
【滑动窗口与双指针】不定长滑动窗口
c++·算法·leetcode·剪枝·哈希
Felven13 小时前
A. Helmets in Night Light
c语言