Ocena:
Książka otrzymała mieszane recenzje dotyczące jej skuteczności w nauczaniu rekurencji i programowania dynamicznego. Podczas gdy wielu użytkowników chwali jej jasne wyjaśnienia i podejście krok po kroku, inni krytykują ją za słabą jakość pisania, brak głębi w wyjaśnieniach i obecność błędów gramatycznych.
Zalety:⬤ Przejrzysty i łatwy do zrozumienia tekst, który pomaga w zrozumieniu złożonych tematów.
⬤ Przykłady krok po kroku, które skutecznie ilustrują koncepcje rekurencji i programowania dynamicznego.
⬤ Przydatne do przygotowania się do rozmowy kwalifikacyjnej z praktycznymi przykładami.
⬤ Dobry materiał dla początkujących, którzy zmagają się z tradycyjnymi podręcznikami.
⬤ Pozytywne opinie na temat stylu nauczania autorów i ich zrozumienia perspektywy studentów.
⬤ Liczne błędy gramatyczne i niska jakość tekstu, co prowadzi do nieporozumień.
⬤ Brak dogłębnych wyjaśnień rozwiązań, co utrudnia początkującym zrozumienie podejścia do rozwiązywania problemów.
⬤ Niektóre recenzje wskazują, że książka nie zawiera istotnych wskazówek dotyczących wyprowadzania rozwiązań, a wiele przykładów zostało po prostu skopiowanych z forów.
⬤ Literówki i nieścisłości w wyjaśnieniach problemów.
⬤ Niektórzy czytelnicy uważają, że treść jest zbyt podstawowa i powtarzalna, brakuje jej głębi.
(na podstawie 60 opinii czytelników)
Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving
Chciałem obliczyć 80-ty wyraz ciągu Fibonacciego. Napisałem szalejącą funkcję rekurencyjną,.
Int fib(int n){.
Return (1==n -- 2==n)? 1: fib(n-1) + fib(n-2);
}
I czekałem na wynik. Czekałem... i czekałem... i czekałem....
Dlaczego przy 8 GB pamięci RAM i procesorze Intel i5 trwa to tak długo? Zakończyłem proces i spróbowałem obliczyć 40. wyraz. Zajęło to około sekundy. Sprawdziłem i zszokowany odkryłem, że powyższa funkcja rekurencyjna została wywołana 204 668 309 razy podczas obliczania 40. wyrazu.
Ponad 200 milionów razy? Czy to raportowanie wywołań funkcji, czy oszustwo jakiegoś rządu?
Rozwiązanie programowania dynamicznego oblicza setny wyraz Fibonacciego w czasie krótszym niż ułamek sekundy, za pomocą pojedynczego wywołania funkcji, zajmując czas liniowy i stałą dodatkową pamięć.
Rozwiązanie rekurencyjne zwykle nie przechodzi wszystkich testów w konkursie kodowania, ani nie robi wrażenia na ankieterze podczas rozmowy kwalifikacyjnej w firmie takiej jak Google, Microsoft itp.
Najtrudniejsze pytania zadawane w konkursach i na rozmowach kwalifikacyjnych dotyczą programowania dynamicznego. Ta książka traktuje o programowaniu dynamicznym. Najpierw wyjaśnia koncepcje na prostych przykładach, a następnie zagłębia się w złożone problemy DP.
© Book1 Group - wszelkie prawa zastrzeżone.
Zawartość tej strony nie może być kopiowana ani wykorzystywana w całości lub w części bez pisemnej zgody właściciela.
Ostatnia aktualizacja: 2024.11.13 21:45 (GMT)