• Członkowie 43 posty
    25 stycznia 2023 20:55

    Kolejne zadanko...
    Kto ma ochotę rozwiązać i wrzucić swoje rozwiązanie na forum, to proszę to zrobić :) Za jakiś czas porównamy nasze wyniki pod kątem poprawności oraz czasu wykonania.

    Zadanie 002:

    Skok na koniec listy.

    Na wejściu mamy listę liczb numbers. Zaczynając od indeksu 0, dla elementu n znajdującego się w indeksie i, wolno przeskoczyć co najwyżej n indeksów do przodu. Biorąc pod uwagę listę liczb, znajdź minimalną liczbę skoków, aby dojść do końca listy.

    Przykładowo dla numbers = [3, 2, 5, 1, 1, 9, 3, 4] wystarczą 2 skoki ( 3 -> 5 -> 4)

    Powodzenia!

  • edit

    Nazwa tematu została zmieniona z Threads Inne Python challenge "Polskie forum Pythona" - zadanie 002.

  • 15 marca 2024 21:07

    Taki algorytm mam w głowie
    1 index=0, value=3 czyli zaczynam od pierwszego elementu listy
    2 biore wycinek numbers[i+1,i+value+1] czyli bedzie sub_list = [2,5,1]
    3 dla kazdego elementu tej podlisty sprawdzam czy value+sublist[i] >= len(numbers)
    4 jesli warunek nie jest spełniony to dodaje/podmieniam na liscie czyli teraz sub_list=[5,8,4]
    5 teraz dla każdego elementu sub_list trzeba by było powtórzyć kroki 1,2,3,4 z odpowiednimi wartościami
    czyli wygląda mi to na rekurencje.
    Nie analizowałem tego na innym przykładzie i nie próbowałem zaimplementować więc nie wiem czy to działa.