11.Equal Sums 90/100 Help.
http://pastebin.com/arM9Xn53 Ако може някой да даде мнение каде бъркам защото явно аз забих ......
http://pastebin.com/arM9Xn53 Ако може някой да даде мнение каде бъркам защото явно аз забих ......
Когато имаш вход например: 1 0 , програмата ти връща като резултат "no", а трябва да е 0 ,тъй като от двете страни на този индекс сумата е 0. При вход 0 0, дава индекс 1, а трябва да е 0. Мисля, че от там идва проблема. Не правиш проверка за сумата от ляво, когато се намираш на индек 0. Виж трети нулев тест, когато имаш един елемент ===> At a[0] -> left sum = 0, right sum = 0.
Ето моето решение, което минава със 100
http://pastebin.com/0JHvGHyv
Здравей. Идеята не е да вкараш hard-code случай, защото не знаеш какъв е тестът на judje в случая. Като цяло твоето решение не работи когато имаш само дясна сума (5 0 0 0 0 например). Трябва да смяташ първо сумата от началото до текущото число(лява) и от числото след текущото до края на масива. Нещо от този род:
for (int numLeft = 0; numLeft <= i - 1; numLeft++)
{
leftSum += nums[numLeft];
}
for (int numRight = i + 1; numRight < nums.Length; numRight++)
{
rightSum += nums[numRight];
}
Видях го това преди да питам за помощ тук промехних при 1 0 вход да ми показва индекс 0 но judge не го хареса отново... Някакъв граничен случай е и не се сещам за друг освен за този които ти ми казваш но пак не работи дори и да проправю при 1 0 да показва 0левия елемент.
Хмм, интересно. Моето решение дава 100/100. https://github.com/stefkavasileva/Programming-Fundamentals/blob/master/Homeworks%20and%20Labs/Arrays-Exercises/11.EqualSums/EqualSums.cs
Когато напиша 1 0 ми връща индекс 0. Въпоса не е да напишеш една проверка за конкретния вход, а да измислиш логиката за каквито и да са числа не точно тези, дадох ти ги като пример.