C++ | Leetcode C++题解之第446题等差数列划分II-子序列
题目:
题解:
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;
}
};
原文地址:https://blog.csdn.net/Ddddddd_158/article/details/142647216
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!