Most Frequent Number C++ Fundamentals
Здравейте, тази задача доста ме "озори", но най-после открих решение.
https://pastebin.com/X0nnFh54-Решение
https://judge.softuni.bg/Contests/Compete/Index/1349#3-Judge
https://softuni.bg/trainings/resources/officedocument/42363/homework-problem-descriptions-c-plus-plus-fundamentals-september-2019/2402- Условие, намира се на 4-та позиция.
Пиша темата, за да открия по-елегантен или рационален начин за решение. Това което най-много ме затормозява е как щях да я реша ако числата не бяха от 0 до 9? По моето решение с още някой друг ред може да се случи, но няма ли да изконсумира прекалено много ресурс от машината ??
Това което искам да видя е най-икономичното решение от гледна точка на обработка, което имплементира само познатите ни за сега структори от данни (array & vector).
Благодаря за вниманието. :)
Програмата ти не работи правилно, ако всичките числа са различни, например
Ooo да, трябва да принтна и 3ката, благодаря ти много kolioi
Сложил съм arr_length - 1, а е трябвало да е просто arr_length на единия цикъл. Благодаря още веднъж. Ето и решението ако на някой му е полезно: https://pastebin.com/1H0vj2Yc . Вече минава 100/100 в judge.
Радо, трябва малко по-малко да почнем да се отучаваме (и аз включително :) :) :) ) от декларация+инициализация от типа "int arr[arr_length] = {0};" Проблема е, че това е по стандарт на C, а не на C++ :) :) Може някой компилатор нейде да изреве. Виждал съм код, който изключва и синхронизация между стандартния C I/O и станартния C++ I/O. Целтата е - скорост. Сигурно в нечий код може да има "изключена" друга функционалност идваща от C99", където са упоменати тези VLA масиви. При C++ изискването е, когато имаме масив с размер променлива е - да използваме vector. Но ти си го използвал де.
Та може ето така да изглежда. vector <int> arr(arr_length), и може да си го обхождаш като масив. Демек, надолу нищо не пипаш :) :) :) И на мен ще ми трябва още малко да посвикна. Както и с функциите. Май тамън ще ги научим и ще трябва да си сменяме мирогледа :) :) :)
Разбрах за какво говориш, прав си. На лекцията от 50:15 се говори точно за това. Просто ми се стори, че е по-удачно да се използва масив, защото от конзолата приемаме точната му дължина. После порових малко в нета, за масива пише, че използва по-малко памет, докато при вектора е обратно заради преоразмеряването. Относно скоростта, на масива е малко по-бърза, но пък както ти каза може да се hit-нат повече проблеми. Благодаря за забележката, браво че го хванах по навреме. Ето 2 линкчета, в които се говори за този проблем:
LINK
LINK
Благодаря още веднъж :)