Максимальное количество пар сумм K || ЛиткодC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Максимальное количество пар сумм K || Литкод

Сообщение Anonymous »

https://leetcode.com/problems/max-numbe ... bmissions/
Вам задан целочисленный массив nums и целое число k.
За одну операцию можно выбрать из массива два числа, сумма которых равна k, и удалить их из массива.
Вернуть максимальное количество операции, которые вы можете выполнять с массивом.
Я столкнулся с очень странной проблемой

Код: Выделить всё

class Solution {
public:
int maxOperations(vector& nums, int k) {
unordered_map seen;
int ans = 0;
int n=nums.size();
for(int i=0;i0 && seen[ele.first]>0)
{
ans+=min(seen[b],seen[ele.first]);
seen[ele.first]=0;
seen[b]=0;
}
}
return ans;
}
};
Тестовый пример:

Код: Выделить всё

[29,26,81,70,75,4,48,38,22,10,51,62,17,50,7,7,24,61,54,44,30,29,66,83,6,45,24,49,42,31,10,6,88,48,34,10,54,56,80,41,19]
12
Если я просто использую упорядоченную карту вместо неупорядоченной, то получаю правильный ответ. Я пытался отладить его, используя множество операторов печати, я мог просто обнаружить, что к моей карте добавляются некоторые новые элементы, которые можно увидеть, когда я использую оператор увиденный>0, но странная часть заключается в том, что на карте есть 6 тем не менее, он не проходит в случае неупорядоченной карты, что приводит к проблеме.

Подробнее здесь: https://stackoverflow.com/questions/721 ... s-leetcode
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»