Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

tanyta78 avatar tanyta78 16 Точки

Проблем със задача Array Manipulator от Lists Lab

Здравейте,

имам проблем със задача Array Manipulator от Lists Lab. Последните тестове ми дават грешка по време на изпълнение и недостатъчна памет. Това е моето решение http://pastebin.com/GDiyU63A

Условието на задачата е това:

Write a program that reads an array of integers from the console and set of commands and executes them over the array. The commands are as follows:

  • add <index> <element> – adds element at the specified index (elements right from this position inclusively are shifted to the right).
  • <index> <element 1> <element 2> … <element n> – adds a set of elements at the specified index.
  • contains <element> – prints the index of the first occurrence of the specified element (if exists) in the array or -1 if the element is not found.
  • remove <index> – removes the element at the specified index.
  • shift <positions>shifts every element of the array the number of positions to the left (with rotation).
    • For example, [1, 2, 3, 4, 5] -> shift 2 -> [3, 4, 5, 1, 2]
  • – sums the elements in the array by pairs (first + second, third + fourth, …).
    • For example, [1, 2, 4, 5, 6, 7, 8] -> [3, 9, 13, 8].
  • – stop receiving more commands and print the last state of the array.
Тагове:
0
Programming Fundamentals
ambiorix avatar ambiorix 640 Точки

Здравей. Като начало видях, че при sumPairs кодът ти не работи ако масивът има нечетен брой елементи. Ако са нечетен брой, то последният елемент ти е последната двойка. Нещо от този род трябва да е:

if (i != numbers.Count)
{
    pairSum = numbers[i] + numbers[i - 1];
}
else
{
    // If the list has an odd count the last digit in it will be the last pair:
    pairSum = numbers[numbers.Count - 1];
}

 

Промени това като начало и ще видим нататък как ще е. Като имам време ще продължа да видя какво не е наред.

1
ambiorix avatar ambiorix 640 Точки

Здравей. Както обещах прегледах по-подробно кода ти и оправих грешките с изключение на memory limit-a. 

http://pastebin.com/HfH82iJ7

Промених методите SumPairsInNumbers(този не работеше когато имаш нечетен брой елементи) и ShiftFromNumbers (там решението ти не работи когато му дадеш shift по-голям от размера на масива, например масив 1 2 3, а ти му дадеш shift 5).

Относно memory limit-a: можеш да пробваш да намалиш листовете в началото и да работиш само с един лист(не съм сигурен дали това е причината за лимита, затова пробвай). Може да погледнеш моето решение в github-a ми ако искаш да видиш как, но ще се справиш и без това.

 

1
01/02/2017 15:30:48
a.aleksandrov91 avatar a.aleksandrov91 51 Точки

И на мен ми запълваше паметта. Поиграх си да намаля промеливите и съм използвах един масив за въвеждане на командите и един лист за тяхното изпълнение. Ето го моя код, надявам се да бъде полезен: http://pastebin.com/4RFuHbdU

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