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;
}
相关推荐
Juan_20123 分钟前
P1041题解
c++·算法·题解·搜索
晨非辰44 分钟前
【数据结构入坑指南】--《层序分明:堆的实现、排序与TOP-K问题一站式攻克(源码实战)》
c语言·开发语言·数据结构·算法·面试
czy87874751 小时前
用C语言实现桥接模式
c语言·桥接模式
普密斯科技1 小时前
图像尺寸测量仪应用Type-C接口:精准检测,赋能科技
c语言·开发语言·科技
degen_2 小时前
第二次进入PEICORE流程
c语言·笔记
我搞slam8 小时前
快乐数--leetcode
算法·leetcode·哈希算法
西阳未落10 小时前
LeetCode——二分(进阶)
算法·leetcode·职场和发展
Want59512 小时前
C/C++大雪纷飞①
c语言·开发语言·c++
吃着火锅x唱着歌12 小时前
LeetCode 410.分割数组的最大值
数据结构·算法·leetcode
YSRM12 小时前
Leetcode+Java+图论+最小生成树&拓扑排序
java·leetcode·图论