0

ターゲット K と個別の要素の配列が与えられた場合、タスクは、合計が K になる配列からすべてのペアを削除することです。

これは私が従ったアプローチです

for(i=0;i<N;i++)
    cin>>array[i];
cin>>K;
map<int, int> mp;
for(i=0;i<N;i++)
{
    if(mp.find(array[i])==mp.end())
        mp[array[i]] = 1;
    else
        mp[array[i]]++;
}

削除のロジック

for(i=0;i<N;i++)
{
   if(mp[K-array[i]]>0)
   {            
       mp.erase(K-array[i]);
       mp.erase(array[i]);
    }
}

印刷出力:

cout<<mp.size();

入力:

array = 6 5 4 2 1 0
K = 6

プログラム出力

4

期待される出力

0
4

1 に答える 1