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
}
相关推荐
水蓝烟雨6 小时前
3337. 字符串转换后的长度 II
算法·leetcode
_日拱一卒6 小时前
LeetCode:226翻转二叉树
数据结构·算法·leetcode
踩坑记录6 小时前
leetcode hot100 64. 最小路径和 medium 递归优化
leetcode·深度优先
lolo大魔王6 小时前
Go语言的并发、协调创建和通信机制
开发语言·golang
样例过了就是过了7 小时前
LeetCode热题100 最长有效括号
c++·算法·leetcode·动态规划
geovindu7 小时前
go:Template Method Pattern
开发语言·后端·设计模式·golang·模板方法模式
水蓝烟雨7 小时前
3335. 字符串转换后的长度 I
算法·leetcode
怪我冷i7 小时前
多租户管理系统,用户表,IsSuperAdmin,IsTenantAdmin,IsCompanyAdmin,IsDeptAdmin需要吗?
golang·llm·多租户·skill
小雅痞7 小时前
[Java][Leetcode middle] 15. 三数之和
java·算法·leetcode
Navigator_Z7 小时前
LeetCode //C - 1030. Matrix Cells in Distance Order
c语言·算法·leetcode