4 solutions

  • 1
    @ 2025-12-6 11:04:13

    c++11思路: 这题其实很简单,如果刷过力扣的应该一眼丁真,就是力扣第一题,用哈希表去映射每个数组

    #include <bits/stdc++.h>
    using namespace std;
    int main(){
        int N,C;
        cin>>N>>C;
        vector <int> v(N,0);
        unordered_map <int,int> mp;//哈希表
        int res = 0;
        int Max = INT_MIN;
        for(int i = 0;i<N;i++){
            cin>>v[i];
            mp[v[i]]++;
            if(Max<=v[i]) Max = v[i];
        }
        for(int i = 1;i<=Max;i++){
            if(mp[i-C]!=0) res += mp[i-C];//遍历每个数组,如果存在这个数,就是直接加上存在这个数的个数就OK了
        }
        cout<<res;
    }
    

    Information

    ID
    1153
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    9
    Tags
    (None)
    # Submissions
    471
    Accepted
    48
    Uploaded By