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


2
5.Write a program that finds the maximal increasing sequence in an array.
Example:  {3, 2, 3, 4, 2, 2, 4} ->{2, 3, 4}.



Отговори



3

http://pastebin.com/NjeyPgsg

ЕДИТ: Решението оправено, благодаря на колежката son4etyyy. 


от ivaylo.kenov (30760 точки)


0
Решението ти не работи когато поредицата е в последните числа. Например при масив {42, 41, 20, 12, 3, 4 }

от son4etyyy (416 точки)

0
Благодаря, колежке, сега ще прегледам. :)

от ivaylo.kenov (30760 точки)



0
Ето и от мен едно: https://github.com/martinivanovit/SimpleProjects/blob/master/MaximalIncreasingSequence

от Mahata231 (1351 точки)


0
Това решение не е ли само за редица нарастваща с единица? Доколкото виждам условието е да се намери максималната нарастваща редица - Example: {3, 2, 4, 5, 7, 2, 4} ->{2, 4, 5, 7} ще покаже само {4, 5}

от randal (5 точки)

0
Да за редица нарастваща само с единица е. Водя се по примера. Може и да си прав не знам

от Mahata231 (1351 точки)



0

от ScorpS (1542 точки)


0
Тук решението е същото като при mahata231, хванали сте случая само с нарастване с единица. Ако ред 25 се промени по следния начин алгоритъма хваща всички случаи: ред 25: if (array[index] < array[index + 1])

от randal (5 точки)

0
По-добре използвай n вместо определелено число за размер на масива, че така е много кофти ако решиш да го променяш

от son4etyyy (416 точки)


6

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

http://goo.gl/qjQ1K
 

 


от Teodor92 (13062 точки)


0
А не трябва ли да излиза решението без 30 :?

от koko_9898 (208 точки)


1
http://pastebin.com/pPH9wExE
ето го и моето решение. Аналогично на зад 4.

от manev4y (19 точки)


0
Колега и аз първоначално разбрах условието да са поредни/1,2,3,4/, но май трябва да е просто увеличаващи се: { 0, 1, 2, 3, 4, 2, 9, 14, 15, 16, 17, 18, 30, 32, 33 } В случая maximal increasing sequence е: 2, 9, 14, 15, 16, 17, 18, 30, 32, 33 Може би ако трябваше да са поредни трябваше условието да е: maximal increasing by one sequence

от vlad0 (6103 точки)


0
http://pastebin.com/XcBnCAD8



0
http://pastebin.com/u9D9cXrt



0
Колега и аз първоначално разбрах условието да са поредни/1,2,3,4/, но май трябва да е просто увеличаващи се: { 0, 1, 2, 3, 4, 2, 9, 14, 15, 16, 17, 18, 30, 32, 33 } В случая maximal increasing sequence е: 2, 9, 14, 15, 16, 17, 18, 30, 32, 33 Може би ако трябваше да са поредни трябваше условието да е: maximal increasing by one sequence

от vlad0 (6103 точки)

0
Прав си да. Трябва да е if (array[i] < array[i + 1]) вместо if (array[i] + 1 == array[i + 1])



1
Ето го моето решение:
http://pastebin.com/NnpsKBx6
Първо пазех първия член от поредицата (тъй като обхождам отдясно наляво) и след това принтирах с цикъл с дължина до максималната намерена като увеличавах с 1. После обаче прочетох тук, че трябва да работи за всякакви числа, не само за такива с разлика 1 и реших да пазя индекса на първото число от възходящата поредица... Може ли някой да погледне и да каже дали всичко е наред? Благодаря предварително!

от m4r71n (0 точки)


0

Малко по-различен подход към проблема с последния елемент, както и подробно обяснение на цялостното решение: Maximal increasing sequеnce


от kdikov (3407 точки)


0

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

Regards

Iliya

 

 


от iliyahristov (0 точки)


0
Колега и аз първоначално разбрах условието да са поредни/1,2,3,4/, но май трябва да е просто увеличаващи се: { 0, 1, 2, 3, 4, 2, 9, 14, 15, 16, 17, 18, 30, 32, 33 } В случая maximal increasing sequence е: 2, 9, 14, 15, 16, 17, 18, 30, 32, 33 Може би ако трябваше да са поредни трябваше условието да е: maximal increasing by one sequence

от vlad0 (6103 точки)