• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadania z Codility

0 głosów
6,550 wizyt
pytanie zadane 2 września 2017 w Java przez Jonki Dyskutant (8,180 p.)
Zacząłem robić zadanka z Codility. Doszedłem do 4 lekcji i zaczęły się problemy z samym rozumieniem zadań.

Zadania

https://codility.com/programmers/lessons/4-counting_elements/frog_river_one/

i

https://codility.com/programmers/lessons/4-counting_elements/max_counters/.

 

Mogły ktoś wytłumaczyć mi na czym polegają te zadania i o co w nich chodzi. Nie chcę kodu, tylko zrozumieć o co kama z tą żabką z pierwszego zadania i o co w ogóle chodzi w tym drugim.

 

Zadanie 1: Celem jest odnalezienie najwcześniejszego czasu, w którym żaba może przeskoczyć na drugą stronę rzeki. Żaba może krzyżować się tylko wtedy, gdy liście pojawiają się w każdym miejscu w poprzek rzeki od 1 do X (tzn. chcemy znaleźć najwcześniejszy moment, kiedy wszystkie pozycje od 1 do X są pokryte liśćmi). Można przypuszczać, że prędkość prądu w rzece jest nieistotnie mała, tzn. Liście nie zmieniają pozycji po opadnięciu w rzece.

W drugim 6 liść spada do pozycji 5. Jest to najwcześniejszy moment, kiedy liście pojawiają się w każdej pozycji nad rzeką.

 

Zadanie 2 to jakaś magia.

1 odpowiedź

0 głosów
odpowiedź 3 września 2017 przez Tomasz90 Nałogowiec (25,140 p.)
edycja 3 września 2017 przez Tomasz90
Nie tłumaczyłem słowo w słowo, ale ogólnie w tych zadaniach chodzi o:

Zadanie 1) Musisz znaleźć czas w którym, żabka będzie mogła najszybciej przeskoczyć na drugą stronę rzeki po liściach. Tablica A zawiera pozycje na którą spada liść, a jej indeksy są kolejnymi sekundami. X to liczba pozycji. Na przedstawionym przykładzie widać, że w 6 sekundzie jest to możliwe (pozycje 1, 2, 3 ,4 ,5 są zajęte). Metoda powinna zwrócić  tą wartość jako int, a w przypadku gdy po przejściu po całej tablicy każda z pozycji nie jest wypełniona wtedy metoda powinna zwrócić -1

Zadanie 2) Masz N liczników. Początkowo każdy z nich jest ustawiony na 0. Dozwolone są 2 operacje:

-increase(X) - wartośc licznika X zostaje zwiększona o 1

-max counter - wszystkie liczniki ustawiane są na wartość maksymalną jednego z nich

Tablica A reprezentuje kolejne operacje. na licznikach:

- jeżeli A[K] = X, dla takiego X, że 1 <= X <= N wtedy wykonywana jest operacja increase(X)

- jeżeli A[K] = N+1, wtedy wykonywana jest operacja max counter

Potem jest przykład w którym widać, że kolejno zwiększony zostaje licznik nr 3 (A[0] = 3), gdyż dla X = 3 spełniony jest warunek 1 <= X <= N, gdzie N = 5. Następnie wg tego samego schematu zostaje zwiększony dwukrotnie licznik nr 4. Dla operacji A[3] następuje ustawienie wszystkich liczników na wartość maksymalną jednego z nich (w tym wypadku wynosi ona 2), ponieważ wartość A[3] spełnia warunek A[K] = N + 1 ( 6 = 5 + 1). Ogólnie metoda którą masz napisać powinna Ci zwrócić wartości wszystkich liczników w postaci int[] po wykonaniu wszystkich operacji

Podobne pytania

0 głosów
1 odpowiedź 721 wizyt
pytanie zadane 16 stycznia 2019 w Java przez krawiecki Początkujący (490 p.)
0 głosów
1 odpowiedź 1,017 wizyt
pytanie zadane 27 kwietnia 2018 w Offtop przez nik Obywatel (1,640 p.)
0 głosów
1 odpowiedź 431 wizyt
pytanie zadane 10 listopada 2016 w Java przez LightInWindow Użytkownik (720 p.)

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...