Loading...
bomman avatar bomman 43 Точки

Homework: Arrays, Lists, Stacks, Queues - Problem 5. Longest Increasing Sequence

Problem 5.       Longest Increasing Sequence

Здравейте хора, някой би ли ми дал идея как от листа reducedS да намеря най-голямата нарастваща поредица. 

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] input = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();


        List<int> reducedS = new List<int>();


        Console.Write(input[0] + " ");
        for (int i = 1; i < input.Length; i++)
        {
            if (input[i] > input[i-1])
            {
                Console.Write("{0} ", input[i]);
                reducedS.Add(input[i]);
            }
            else
            {
                Console.WriteLine();
                Console.Write(input[i] + " ");
            }
        }
        Console.WriteLine();
            
    }
}

 

0
Fundamentals Module 17/09/2015 10:41:18
Dargo avatar Dargo 44 Точки

Здравей колега,

Моят съвет е да имаш един лист , в който да пазиш временно текущата нарастваща поредица и да имаш един int , който да пази дължината на най-дългата поредица досега и ако е по-дълга текущата да заменяш съответните стойности и да преместиш поредицата във втори Лист, в който да пазиш най-дългата нарастваща поредица и да изчистиш първия лист за да е празен за следващия цикъл.

Поздрави :)

 

2
Rextor92 avatar Rextor92 149 Точки

Dargo е дал добро предложение, но int променливата е излишна - можеш просто да използваш List<int> temp и List<int> longest, като проверяваш дали temp.Count > longest.Count.

Погледнни в другата тема - https://softuni.bg/forum/5579/Homework-Advanced-CSharp-Arrays-Lists-Stacks-Queues-Vypros-za-zadacha-5

А ето и моето решение - github.com/rextor92

 

2
Dargo avatar Dargo 44 Точки

Благодаря Rextor92 прав си относно забележката , а относно решението ти ако въведеш предица от 1 до 9 програмата ти няма да изпринти longestSequence или например 6 7 8 9 1 2 3 4 5 ще изпринти като най-дълга 6 7 8 9, причината е че цикъла ти завършва преди да влезе в блока else където се извършва попълването на листа с longestSequnce .Можеш да го оправиш като напишеш същия if като в else блока преди последното изпринтване на longestSequence.

Поздрави :)

 

2
Rextor92 avatar Rextor92 149 Точки

Напълно си прав. Така става, като не си тествам решението. Благодаря :)

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