[C#] Arrays - 4 задача


2
4.Write a program that finds the maximal sequence of equal elements in an array.

  Example: {2, 1, 1, 2, 3, 3, 2, 2, 2, 1} -> {2, 2, 2}.




Отговори



8

Ето го моето решение на задачата:

http://pastebin.com/9CjpDeUV


от gallumbits (2371 точки)


0
И аз съм я решил по почти същия начин, само че "List

от gargantiua (0 точки)


0
http://pastebin.com/4hbJev8q



1
http://pastebin.com/1kFdUmmg

от iwitass (3695 точки)


0
При входни данни 5- за елементи и елементи- 1 1 1 2 3 не изкарва правилен отговор.

от stambeto09 (425 точки)


2

Едно речение с while : http://pastebin.com/rRWBzHcy


от son4etyyy (416 точки)


2

Едит: Преместих решението и обяснението в блога си. Ето линк:

http://goo.gl/qjQ1K
 

 


от Teodor92 (13062 точки)


0
Здрасти, Тео, Решението ти е супер, но не трябва ли изходът просто да изписва нов масив от най-дългата поредица?

от doni.todorova (1245 точки)

0
Въпрос на вкус :) Т.к. елементите са едни и същи и имаме тяхната бройка, ако ни е нужно новия масив се прави доста лесно :)

от Teodor92 (13062 точки)



0
от мене:
http://pastebin.com/kDgUStC7

от Dimov (907 точки)


0
Няма особено разнообразие във възможните решения - моето е с един while цикъл:
http://pastebin.com/5UgqLBA2

от shristoff (747 точки)


0

Here is my try ;) : http://pastebin.com/VdNrTwnJ

Regards
 

Iliya


от iliyahristov (0 точки)


1
Моето решение не е много рационално, но става ако някой иска да види друг начин за решаване http://pastebin.com/qxSUdBB7 Вместо да запазя стойността на повтарящия елемент запазвам индекса му и след това в нов for, започващ от този индекс и продължаващ до индекса минус дължината на редицата с повтарящи елементи(в обратен ред) изкарвам съответните елементи. Ако някой разбра какво искам да кажа - Евала. :)



1

Колеги, някой може ли да ми обясни защо накрая единствено при:

 

for (int k = 0; k <= lenght; k++)
        {
            Console.Write("{0}", temp);
        }
т.е. дължина с 1 по-голяма от измерената, ми връща верен резултат?

Ето кодът:

http://pastebin.com/1Ydxy0F0


от anonymous (0 точки)


0
Защото start, не трябва да ти 0, а 1 т.к. всеки елемент си само за себе си редица. Пример: {1,1,1,2,2} Aко старт ти е 0 -> сравняваш първия със втория елемент -> старт = 1, втория с третия -> старт = 2 , третия с четвъртия, не съвпадат. Но стойността на старт е 2, а трябва да е 3 :) Между другото имаш още едно бъгче, ама няма да ти го казвам веднага, да видим дали може да се сетиш :)

от Teodor92 (13062 точки)

0
Не го казвай, утре като стана, ще помисля! А иначе си прав! Наистина всеки елемент си е редица сам за себе си :))). Ама пък с 0 става готино като всички елементи се появяват по веднъж и то изкарва 0 :))) Демек никой не печели :))) Обаче сега видях, че ако масивът е четен брой елементи и всички се повтарят по 2 пъти, изкарва първият като верен отговор... пууу! Ще имам тема за размисъл утре :) Мерси, Теди!

от anonymous (0 точки)