C++ | Leetcode C++题解之第446题等差数列划分II-子序列

题目:

题解:

cpp 复制代码
class Solution {
public:
    int numberOfArithmeticSlices(vector<int> &nums) {
        int ans = 0;
        int n = nums.size();
        vector<unordered_map<long long, int>> f(n);
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < i; ++j) {
                long long d = 1LL * nums[i] - nums[j];
                auto it = f[j].find(d);
                int cnt = it == f[j].end() ? 0 : it->second;
                ans += cnt;
                f[i][d] += cnt + 1;
            }
        }
        return ans;
    }
};
相关推荐
zmzb01031 分钟前
C++课后习题训练记录Day201
c++·算法·图论
Escalating_xu2 分钟前
【C++入门基础(上)】从发展历程、学习路线到命名空间与输入输出
开发语言·c++
jimy15 分钟前
C++ 中的rValue的判断---是否能“隐式移动”
开发语言·c++
五_谷_丰_登12 分钟前
平衡二叉搜索树讲解
数据结构·c++
星星.72215 分钟前
【图论】最小生成树|Prim+Kruskal算法
数据结构·c++·算法·图论
圣保罗的大教堂17 分钟前
leetcode 3734. 大于目标字符串的最小字典序回文排列 困难
leetcode
charlie11451419119 分钟前
Cinux · musl 静态移植:对齐 Linux ABI、铺初始栈,以及一个被 SMAP 拦下的潜伏 bug
linux·开发语言·c++·操作系统·开源项目
_Narcissus_29 分钟前
单调栈笔记及例题详解
数据结构·c++·笔记·算法·力扣·单调栈·洛谷
流浪00134 分钟前
C/C++后端筑基系列(二):C++ 从基础到进阶
开发语言·c++