Как мне учесть дубликаты значений при решении проблемы двух сумм с использованием хеш-таблицы?

Это не существует, но вы можете использовать JSON.parse(JSON.stringify(jobs))

1
задан nkoz18 28 March 2019 в 05:38
поделиться

1 ответ

Это краткое изложение вопроса, насколько я понял:

  • Ваш массив может содержать дубликаты элементов, например: - [1, 2, 3, 2, 4]
  • [112 ]

    Вы хотите напечатать дубликаты [4, 1, 2, 3, 2, 4] как (2, 4), (2, 4)

    vector<pair<int, int> > findPairs(vector<int> arr, int target){
        int size = arr.size();
        map<int, int> hashMap;
    
        for(int i = 0; i < size; i++){
                // C++ map assigns 0 as default if the key is not present, C++ map uses Red Black Tree 
                if(hashMap[arr[i]] == 0)
                        hashMap[arr[i]] = 1;
                else
                        hashMap[arr[i]]++;
        }
        /** Use to store result in (int, int) form
         *  Vector is a Dynamic array
         */
        vector<pair<int, int> > results;
        for(int i = 0; i < size; i++){
                int diff = target - arr[i];
                hashMap[arr[i]]--;
                if(hashMap[diff] >= 1)
                        results.push_back(make_pair(arr[i], diff));
                hashMap[diff]--;
        }
        return results;
    

    }

Этот код основан на примерах, которые вы предоставили в вопросе.

0
ответ дан KauziJoshi 28 March 2019 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: