Loading...
gadjov avatar gadjov 115 Точки

Homework: Max Sequence of Equal Elements

Здравейте, от презентацията листове и матрици цял ден се мъча и немога да разбера как да започна задачата. Някой може ли да ми помогне с насоки или да помогне да довърша моята идея (ако е възможно така де). Ето го кода http://pastebin.com/RQ082Api

Само когато еднаквите числа  са с еднакъв брой ми гърми и не мога да го измисля cheeky

0
Programming Basics
petar.dimitrov.86 avatar petar.dimitrov.86 450 Точки

Проблемът ти май идва от 20ти ред, където казваш, че equal = nums[counts.Max()];, т.е. ти казваш че числото е с индекс най-голямата стойност на counts в списъка nums. И така ако имаш примерно поредицата 2 2 1 1 3 3, counts.Max() ще ти е равно на 2, и съответно ще ти върне като резултат числото на индекс 2 в nums, т.е. 1, и накрая ще ти върне като резултат 1 1. Харесва ми, че си се опитал по елегантен начин да го решиш, обаче лично аз не се сещам как да се вземе по кратък начин индекса на стойността, която се среща най-много пъти. Може би във foreach цикъла да се прави там директно проверка за най-голямата дължина и да намираш вече правилната стойност за equal, която да се сменя всеки път като се намери по-голяма последователност.

Прилагам и моето решение, с което упражнявам ползването на Clear, AddRange и Add. Далече е от твоята логика, тъй като аз малко по-хамалски го правя, така че все пак ти препоръчвам да пробваш по твоя начин да избуташ до край, и чак тогава да погледнеш по-различен подход - http://pastebin.com/RJcq9JDB

1
borislav9212 avatar borislav9212 745 Точки

Мисля, ше ти трябват counteri, за да минаваш през числата и като има еднакви да ги записваш. Ето и моето решение може да ти помогне  http://pastebin.com/Qi8ARKer

Успех

0
11/04/2016 09:29:07
gadjov avatar gadjov 115 Точки

Благодаря, колеги за съветите, ето го моето решение http://pastebin.com/iANzhprG 100/100 . Най-накрая я измислих , но по този начин при отрицателни числа , ако абсолютната стойност на отрицателното число е по - голяма от положителното гърми, защото неможе да се поберат числата в по-малкия масив, но джъджа не го лови това laugh

1
11/04/2016 23:21:29
mrindzhov avatar mrindzhov 3 Точки

Колега този код, ми се струва,че работи за всички еднакви подадени числа без значение дали са съседни или не :D Може би има бъг в джъджа щом дава 100.Аз лично пробвах с Linq да я реша, но ми дава само 85... 

Ето и моя код: http://pastebin.com/ftMXqpLV

0
Stanislav.Petrov avatar Stanislav.Petrov 12 Точки

Здравейте,

Условието , което прочетох бе да се използва List.

И затова в следното решение съм го ползвал за да запиша колко пъти числото на дадената позиция се повтара наляво вкл. с нея.

Това е решението: https://pastebin.com/iiKyZKEF

0
18/05/2017 11:27:46
Miroslav_Kisov avatar Miroslav_Kisov 60 Точки

https://pastebin.com/aZShTYQQ И от мен.

0
delian1914 avatar delian1914 99 Точки

Един по - различен подход. Вход 7 7 4 4 5 5 3 3. Групираме елементите в листа, където nums е листа

var mostFrequent=nums.GroupBy(x=>x);

връща IGrouping<int,int>

С foreach обикаляме сортираните елементи като ги подреждаме по стойност или колко пъти  се среща числото Х 

 foreach (var num in mostFrequent.OrderByDescending(x=>x.Count()))
            {
                var element=num.Key;
                var ocurr=num.Count();
                Console.WriteLine(string.Concat(Enumerable.Repeat(element+" ",ocurr)));

                break;
            }

След първата интерация принтирам най - голямато или най - лявото от поредицата. Малко тъпо, но пък ефективно спирам цикъла с break;....

Изход 7 7

Решение

Източник: StackOverflow

 

Поздрави!

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

това е programing fundamentals...това което ти си направил е rocket science за тях все още и едва ли ще го разберат.

-1
09/02/2018 12:10:05
minchev_su avatar minchev_su 3 Точки

Ето и едно леко по-различно решение от мен :)

https://pastebin.com/ewvVJQyz

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