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;
    }
};
相关推荐
孞㐑¥4 分钟前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
Alfred king3 小时前
面试150 生命游戏
leetcode·游戏·面试·数组
水木兰亭3 小时前
数据结构之——树及树的存储
数据结构·c++·学习·算法
CoderCodingNo4 小时前
【GESP】C++四级考试大纲知识点梳理, (7) 排序算法基本概念
开发语言·c++·排序算法
秋风&萧瑟6 小时前
【C++】C++中的友元函数和友元类
c++
梁诚斌6 小时前
使用OpenSSL接口读取pem编码格式文件中的证书
开发语言·c++
薰衣草23339 小时前
一天两道力扣(1)
算法·leetcode·职场和发展
爱coding的橙子10 小时前
每日算法刷题Day41 6.28:leetcode前缀和2道题,用时1h20min(要加快)
算法·leetcode·职场和发展
2301_8035545210 小时前
c++中的绑定器
开发语言·c++·算法
海棠蚀omo10 小时前
C++笔记-位图和布隆过滤器
开发语言·c++·笔记