✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Ćwiczenie na kodowanie – Wchodzenie po schodach – Liczby Fibonacciego – C++ – Sędzia online

23

Pytanie: Wchodzisz po schodach. Aby dostać się na szczyt, potrzeba n kroków. Za każdym razem możesz zrobić 1 krok lub 2 kroki. Na ile różnych sposobów można dostać się na szczyt?

Opis problemu: http://oj.leetcode.com/problems/climbing-stairs/

Ten problem może początkowo wydawać się trudny, ale kiedy pomyślisz przez chwilę, może się okazać, że jest to takie proste. Odpowiedzią są liczby Fibonacciego (patrz tutaj, tutaj )

Cóż, oryginalne liczby Fibonacciego są zdefiniowane jako sekwencje:

Ćwiczenie na kodowanie - Wchodzenie po schodach - Liczby Fibonacciego - C++ - Sędzia online

W przypadku tego problemu musimy tylko trochę zmodyfikować:

Ćwiczenie na kodowanie - Wchodzenie po schodach - Liczby Fibonacciego - C++ - Sędzia onlinea Ćwiczenie na kodowanie - Wchodzenie po schodach - Liczby Fibonacciego - C++ - Sędzia onlineponieważ tylko dla 1 kroku istnieje tylko 1 odrębna droga, a dla 2 kroków mamy dwa rozwiązania: 1 + 1 lub 2.

Reszta to seria Fibonacciego. Ponieważ Ćwiczenie na kodowanie - Wchodzenie po schodach - Liczby Fibonacciego - C++ - Sędzia onlinez obecnej pozycji jesteśmy prawdopodobnie z dwóch poprzednich pozycji, F(n-1) i F(n-2).

Możesz użyć rekurencji, ale można to rozwiązać za pomocą bardziej efektywnego rozwiązania iteracyjnego.

Lub wolisz prostszą funkcję rekurencyjną:

class Solution { public:     int climbStairs(int n) {         if (n == 1) return 1;         if (n == 2) return 2;         return climbStairs(n - 1) + climbStairs(n - 2);     } };

Uwaga: Funkcja rekurencyjna zwróci LIMIT CZASU PRZEKROCZONY w teście 44. Dzieje się tak dlatego, że funkcja rekurencyjna zwykle oblicza wartości pośrednie wiele razy. Na przykład Ćwiczenie na kodowanie - Wchodzenie po schodach - Liczby Fibonacciego - C++ - Sędzia online, Ćwiczenie na kodowanie - Wchodzenie po schodach - Liczby Fibonacciego - C++ - Sędzia online. Ćwiczenie na kodowanie - Wchodzenie po schodach - Liczby Fibonacciego - C++ - Sędzia online jest obliczana dwukrotnie.

Źródło nagrywania: helloacm.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów