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
}
相关推荐
qq_513970446 小时前
力扣 hot100 Day56
算法·leetcode
Hello.Reader9 小时前
Go-Elasticsearch v9 安装与版本兼容性
elasticsearch·golang·jenkins
爱喝矿泉水的猛男9 小时前
非定长滑动窗口(持续更新)
算法·leetcode·职场和发展
YuTaoShao9 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
五岁小孩9 小时前
实操使用 go pprof 对生产环境进行性能分析(问题定位及代码优化)
性能优化·golang·pprof
大锦终12 小时前
【算法】前缀和经典例题
算法·leetcode
cccc来财12 小时前
Java实现大根堆与小根堆详解
数据结构·算法·leetcode
恣艺14 小时前
LeetCode 854:相似度为 K 的字符串
android·算法·leetcode
一杯科技拿铁14 小时前
Go 的时间包:理解单调时间与挂钟时间
开发语言·后端·golang
刚入坑的新人编程15 小时前
暑期算法训练.9
数据结构·c++·算法·leetcode·面试·排序算法