Golang | Leetcode Golang题解之第413题等差数列划分

题目:

题解:

Go 复制代码
func numberOfArithmeticSlices(nums []int) (ans int) {
    n := len(nums)
    if n == 1 {
        return
    }

    d, t := nums[0]-nums[1], 0
    // 因为等差数列的长度至少为 3,所以可以从 i=2 开始枚举
    for i := 2; i < n; i++ {
        if nums[i-1]-nums[i] == d {
            t++
        } else {
            d, t = nums[i-1]-nums[i], 0
        }
        ans += t
    }
    return
}
相关推荐
涵涵子RUSH7 小时前
合并K个升序链表(最优解)
算法·leetcode
清炒孔心菜7 小时前
每日一题 338. 比特位计数
leetcode
sjsjs118 小时前
【多维DP】力扣3122. 使矩阵满足条件的最少操作次数
算法·leetcode·矩阵
Sudo_Wang9 小时前
力扣150题
算法·leetcode·职场和发展
hkNaruto10 小时前
【P2P】【Go】采用go语言实现udp hole punching 打洞 传输速度测试 ping测试
golang·udp·p2p
入 梦皆星河10 小时前
go中常用的处理json的库
golang
呆呆的猫11 小时前
【LeetCode】9、回文数
算法·leetcode·职场和发展
Lenyiin11 小时前
3354. 使数组元素等于零
c++·算法·leetcode·周赛
南宫生11 小时前
力扣-图论-70【算法学习day.70】
java·学习·算法·leetcode·图论
陵易居士12 小时前
力扣周赛T2-执行操作后不同元素的最大数量
数据结构·算法·leetcode