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
}
相关推荐
mit6.8241 小时前
[贪心_7] 最优除法 | 跳跃游戏 II | 加油站
数据结构·算法·leetcode
凯子坚持 c3 小时前
深度解析之算法之分治(快排)
算法·leetcode·职场和发展
石去皿9 小时前
力扣hot100 91-100记录
算法·leetcode·职场和发展
圣保罗的大教堂10 小时前
leetcode 2799. 统计完全子数组的数目 中等
leetcode
SsummerC10 小时前
【leetcode100】组合总和Ⅳ
数据结构·python·算法·leetcode·动态规划
YuCaiH10 小时前
数组理论基础
笔记·leetcode·c·数组
2301_8076114911 小时前
77. 组合
c++·算法·leetcode·深度优先·回溯
SsummerC12 小时前
【leetcode100】零钱兑换Ⅱ
数据结构·python·算法·leetcode·动态规划
程序员-King.13 小时前
day47—双指针-平方数之和(LeetCode-633)
算法·leetcode
阳洞洞13 小时前
leetcode 1035. Uncrossed Lines
算法·leetcode·动态规划·子序列问题