Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият.
Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание.
Използваме бисквитки и за измерване на маркетинговите ни усилия.
На 8-ма нали с рекурсия трябва, аз я направих с рекурсия, но ми гърмят последните 2 теста за време. То мойта ай-петичка се зори бая :)
Как да го направя по-бързо? Ето моето р-ие за 75т. : https://github.com/val4o89/CSharp-Advanced-Softuni/blob/master/Program.cs
Имате ли идея защо на простичък код като на зад.3 последните 2 теста ми дават Time limit ?
static void Main()
{
int n = int.Parse(Console.ReadLine());
Stack<int> nums = new Stack<int>();
for (int i = 0; i < n; i++)
{
string line = Console.ReadLine();
if (line == "2")
{
nums.Pop();
}
else if (line == "3")
{
Console.WriteLine(nums.Max());
}
else
{
nums.Push(int.Parse(line.Split(' ')[1]));
}
}
}
Какво трябва да се оптимизира в случая?
методът Max() e бавен и за това ти гърми, за това трябва да пазищ максималните стойности в помощен стек (втори, освен основния), и в случай, че попваш от основния трябва да попваш и от помощния.
Аз предлагам направо да си запазваш maxValue в един int все пак не е нужен цял stack за една цифра
Редакция:
Слагам линк към моето решение тъй като явно не си ме разбрал за maxValue-то
https://github.com/DenisAngelov/SoftUni-Advanced-CSharp/blob/master/01.BasicStackOperations/03.MaximumElement/MaxElement.cs
С наставленията успях да го докарам до 100/100. Видях, че има препоръки за swich case. Така го бях направила в началото, но в случая не е от голямо значение. Според мен може и с if-else, кой както си предпочита.
Кодът е ТУК
Благодаря за насоките.
С една цифра ще е трудно, защото можеш да попнеш макса от основния стек , а следващия макс да е по-навътре. Следователно ще пазиш макс в една променлива, обаче ако го попнеш от основния стек гърмиш
Нали заради това има допълнителен стек. Той пази предните max-ове. ? При Pop() от допълнителния стек int max се променя с стойността на предния мах, който е "по-навътре"... ако има бъг в логиката ще се радвам да чуя :)
val4o89 На мен със същото решение ми дава 100 точки.