Arrays Exercises, 11. Equal Sums - Софтуерен университет

+ Нов въпрос
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
icowwww avatar icowwww 863 Точки

Пробвай сега с редицата:

5 2 2 -4

при теб връща no, а при мен 0. Оправи този случай и ще даде точките.

0
12/10/2017 01:39:00
vpaleshnikov avatar vpaleshnikov 23 Точки

Дано ти е от полза!

https://github.com/vpaleshnikov/Arrays-Exercises/blob/master/11.EqualSums/EqualSums.cs

0
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 29 Точки

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

0