Loading...
Danisimo avatar Danisimo 1 Точки

Arrays Exercises, 11. Equal Sums

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

Отделих повече време на тази задача от колкото ми се иска да си призная. Получавам 80/100 в джъдж. Ето го кода: https://pastebin.com/ZVa455qn

Потърсих малко и ми се струва, че решението ми не е прекалено далеч от истината. Повечето хора са подходили на принципа на това да запаят сумите от ляво и от дясно в arrays. Логиката на печатането ми е "вземи елемент i ot sumLeftArray и провери дали се съдържа в sumRightArray, Ако да отпечатай i,което съвпада с номера на индекса." След това с ифове са описани случаите в които трябва да се върне 0 или "no".

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

Тагове:
0
Programming Fundamentals
Danisimo avatar Danisimo 1 Точки

След 5,6 часа мъки се предадох и почнах да гледам чужди решения и намерих едно, което имплементирах в моето и исках да го споделя.

https://pastebin.com/p5ibiu8X

Изключително просто, кратко и разбираемо. Даже не се ползват допълнителни масиви. Един главаен фор цикъл, с който избираш елемента i около който смяташ сумите и два вложени фор цикъла, единият смята сумата от елемент 0 до i - 1, а другия сумата от i + 1 до края на входящия масив. Прави се един тест за равенство на сумите, ако е успешен се излиза от метода с return. Даже никакви други проверки не трябват, защото ако програмата успее да извърти всички цикли без да намери съвпадение, значи по презумция можем да отпечатаме "no". 

Всичко това са има няма 30 реда код и ужасно проста логика. На мен в такива здачи ми хрумва да създавам нови масиви, да ги въртя, да ги сортирам, да ги копирам, linq, функции, само не ми идва на ум най-елементарното...

Някак си имам чувството, че съм пропуснал част от материала или ми куца алгоритмичното мислене, защото се опитвам да правя 1000 пъти по сложни операции отколкото е нужно, губя половин ден в една задача и накрая не мога да и взема 100 точки.

Благодаря на всички.

0
12/10/2017 11:14:21
VladimirPetukhov avatar VladimirPetukhov 28 Точки

Ако някой може да ми обясни какво точно се иска в задачата.

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