Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Codility - zad. TapeEquilibrium
mam_problem
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 27.01.2014

Ostrzeżenie: (0%)
-----


Witam!

Ogólnie chciałbym prosić Was o schemat rozwiązania do zadania TapeEquilibrium (to pierwsze zadanie na tej stronie) na https://codility.com/demo/train/

Czemu?
Zrobiłem to zadanko, coś tam było źle. Wyniki wychodziły dobre ale wywalało jakiś błąd. Po naprawieniu go przeszło test ale wynik był 0/100. Stwierdziłem, zobacze jak trzeba to zrobić.
Poszukałem po google i znalazłem kilka rozwiązań 100/100 (np. http://pastebin.com/eu0Szh9R tu)
Jakież było moje zdziwienie, gdy po wrzuceniu tych rozwiązań, za KAŻDYM razem wywalało błąd.
Po zmianie return z -1 na 1 przechodziło test pomyślnie ale wynik dalej był 0/100

Czy mógłby ktoś podać mi rozwiązanie do tego zadania tak by było 100/100 ? Jeśli będę miał rozwiązanie do tego zadania to i z resztą sobie poradzę.

Pozdrawiam i dziękuję za pomoc

ok znalazłem błąd (przeoczyłem JAKĄ wartość ma zwracać funkcja).
41 of 100. Teraz tylko zoptymalizować.
Jakby komuś chciało się napisać rozwiązanie - byłoby fajnie, jeśli nie - luzik. Grunt, że znalazłem kluczowy błąd (IMG:style_emoticons/default/wink.gif)

Ten post edytował mam_problem 27.01.2014, 10:26:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Snup
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.02.2014

Ostrzeżenie: (0%)
-----


Troszkę po czasie ale chyba lepiej odkopać niż tworzyć nowy temat. Moje rozwiązanie ma 91/100. Orientuje się ktoś jak rozwiązać problem z małymi elementami? Analogiczne rozwiązanie w Java oraz C# daje 100/100.
https://codility.com/demo/results/demoYDY35C-8AX/ <-- link do mojego rozwiązania.
Kombinowałem już z int'ami, ale bez skutku.

Co do zaprezentowanego przez ciebie przykładu rozwiązania to dotyczy on zadania "Equi" a nie "TapeEquilibrium".
Go to the top of the page
+Quote Post
--Janusz--
post
Post #3





Goście







Rozwiązanie jest dość proste, tutaj mój kod 100/100 z nr lini, trzeba je wyciąć.
int solution(int A[], int N) {
02.
int suma=0, lewa=0, prawa=0,i,min=99999, roznica;
03.
for(i=0;i<N;++i)
04.
{suma+=A[i];
05.

06.
}
07.

08.
for(i=1;i<N;++i)
09.
{lewa+=A[i-1];
10.
prawa=suma-lewa;
11.
roznica=abs(lewa-prawa) ;
12.

13.

14.

15.
if (roznica<min)
16.
{min=roznica; }
17.
}
18.

19.
return min;
20.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:19