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;
}
相关推荐
代码中介商3 小时前
C语言函数完全指南:从基础到实践
c语言·开发语言
hssfscv3 小时前
软件设计师下午试题四——C语言(N皇后问题、分治、动态规划)
c语言·算法·动态规划
故事和你914 小时前
洛谷-算法1-7-搜索3
数据结构·c++·算法·leetcode·动态规划
爱编码的小八嘎4 小时前
C语言完美演绎8-7
c语言
cao23335 小时前
poj1845 sumdiv 题解
题解
y = xⁿ6 小时前
20天速通LeetCode day07:前缀和
数据结构·算法·leetcode
小雅痞7 小时前
[Java][Leetcode hard] 42. 接雨水
java·开发语言·leetcode
幽灵诶7 小时前
理解指针2
c语言
boonya8 小时前
一文读懂MCP:AI连接万物的“USB-C接口”
c语言·开发语言·人工智能
yashuk8 小时前
C语言条件编译三种方式及第一种方式的格式、作用与示例
c语言·程序设计·条件编译·代码示例·预处理程序