题解 | #下标数组#

下标数组

https://www.nowcoder.com/practice/2eac3a5a8cee42da8de003ecca29e271

#include <bits/stdc++.h> 



using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> a(n+1);

    for(int i = 1; i <= n; i++) cin >> a[i];

    unordered_map<int,int> cnt;
    
    long long ret = 0;
    for(int i = 1; i <= n; i++){
        if(cnt.find(i-a[i]) != cnt.end()){
            ret += cnt[i-a[i]];
        }
        cnt[a[i] - i]++;;
    }
    cout << ret << endl;
    return 0;
}

全部评论

相关推荐

11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务