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;
    }
};
相关推荐
好看资源平台1 小时前
C++游戏开发:构建高性能、沉浸式游戏体验的关键
开发语言·c++·游戏
码农小苏241 小时前
力扣刷题--476. 数字的补数【简单】
数据结构·算法·leetcode
多喝热水-多读书1 小时前
Qt C++设计模式->享元模式
c++·qt·设计模式·享元模式
charlie1145141911 小时前
设计模式小记:构造器
c++·设计模式·程序设计·构造器
流星白龙1 小时前
【C++算法】6.双指针_有效三角形的个数
开发语言·c++·算法
DdddJMs__1352 小时前
C语言 | Leetcode C语言题解之第443题压缩字符串
c语言·leetcode·题解
nuo5342022 小时前
数学期望专题
c语言·c++·算法·概率论
霍金的微笑2 小时前
LeetCode
算法·leetcode·职场和发展
二进制人工智能2 小时前
【C++设计模式】(四)创建型模式:简单工厂模式,工厂方法模式,抽象工厂模式
c++·设计模式
taulee013 小时前
【题解】Codeforces Round 975 (Div. 2) A~E
数据结构·c++·算法·深度优先·图论