8.13 美团笔试第四题

过了91%,听同学说改成long long就AC了,自以为逻辑应该没啥问题。抛砖引玉之。
题目:i<j<k满足于a[i] - a[j] = 2a[j] - a[k],求有几对。

#include <bits/stdc++.h>

using namespace std;
using LL = long long;

int main() {
    //freopen("test.txt", "r", stdin);
    ios::sync_with_stdio(false);
    int n, ans = 0;
    cin >> n;
    vector<LL> v(n);
    unordered_map<LL, vector<int>> m;
    for (int i = 0; i < n; ++i) {
        cin >> v[i];
        m[v[i]].push_back(i);
    }
    for (int i = 0; i < n; ++i) {
        for (int j = i + 1; j < n; ++j) {
            LL sum = v[i] + v[j];
            if (sum % 3 != 0) {
                continue;
            } else {
                LL the_num = sum / 3;
                if (m.find(the_num) == m.end()) {
                    continue;
                } else {
                    ans += m[the_num].end() -
                           upper_bound(m[the_num].begin(), m[the_num].end(), j);

                }
            }
        }
    }
    cout << ans;
    return 0;
}



#美团笔试#
全部评论
都是手撕代码吗
点赞 回复 分享
发布于 2022-08-15 18:23
大佬能不能解释下思路
点赞 回复 分享
发布于 2022-10-02 17:57 湖北

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
1 2 评论
分享
牛客网
牛客企业服务