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
}
相关推荐
不穿格子的程序员3 小时前
从零开始写算法——普通数组篇:缺失的第一个正数
算法·leetcode·哈希算法
VT.馒头5 小时前
【力扣】2722. 根据 ID 合并两个数组
javascript·算法·leetcode·职场和发展·typescript
执着2596 小时前
力扣hot100 - 108、将有序数组转换为二叉搜索树
算法·leetcode·职场和发展
52Hz1187 小时前
力扣230.二叉搜索树中第k小的元素、199.二叉树的右视图、114.二叉树展开为链表
python·算法·leetcode
苦藤新鸡7 小时前
56.组合总数
数据结构·算法·leetcode
菜鸟233号7 小时前
力扣647 回文子串 java实现
java·数据结构·leetcode·动态规划
LiLiYuan.7 小时前
【Cursor 中找不到LeetCode 插件解决办法】
算法·leetcode·职场和发展
Charlie_lll7 小时前
力扣解题-[3379]转换数组
数据结构·后端·算法·leetcode
TracyCoder1237 小时前
LeetCode Hot100(23/100)——142. 环形链表 II
算法·leetcode·链表
有代理ip8 小时前
Python 与 Golang 爬虫的隐藏优势
爬虫·python·golang