Loading...
Jovanna avatar Jovanna 186 Точки

Благодаря! Много полезно. Ще ни направиш съвършени :-)

Има някакви детайли, които ми убягват на 3-та задача Code:

ето това решение, което логически следва твоето, но технически има разлики (не е изведено във функция въвеждането на данните), защо реже половината точки за time limit? Явно има важни неща, които ми убягват.

https://pastebin.com/L8QsucFs

0
Valleri avatar Valleri 304 Точки

Здравей!

Решението ти е вярно, но не е оптимизирано. За всяко търсено число въртиш един цикъл около векторите и втори (абстракцията "find" вътрешно си върти цикъл за да намери елемента) което прави сложността на задачата O(n2). Ако използваш unordered_set търсенето в него отнема константно време (О(1)), тогава ще имаш отново един цикъл около векторите (O(N)), но след това търсенето в set сложността ще е O(1) и общо ще ги намираш за линейно време (О(N)).

За да разнообразим начините за решаване в тази дискусия ще постна и моето решение, като съм подходил по различен начин. За всяка част, още при четенето й я добавям в сет, при първото добавяне на елемента го броя в map (понеже ни интересува дали го има в частта, а не колкот пъти. След това, при сепаратор зачиствам сета и продължавам с следващата част.

https://pastebin.com/LBxmbh19

1
16/07/2018 17:20:51
Jovanna avatar Jovanna 186 Точки

Здравей,

положих малко усилия да разбера кода ти,  много хитроумно!! Тази част особено ми хареса:

while (messageStream >> msgWord) {

        if (separators.count(msgWord)) {

            part.clear();

        } else {

            if (!part.count(msgWord)) {

                occurences[msgWord]++;

            }

            part.insert(msgWord);

        }

 }

предполагам дава 100т.? 

0
Jovanna avatar Jovanna 186 Точки

Пренаписах решението с твоята логика, даде 100т.!

Но, остава мистерията на другата код-реализация :-)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.