Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving

Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving - Kamal Rawat

Dynamic Programming for Coding Interviews: A Bottom-Up Approach to Problem Solving


I wanted to compute 80th term of the Fibonacci series. I wrote the rampant recursive function,

int fib(int n){

return (1==n -- 2==n) ? 1: fib(n-1) + fib(n-2);

}

and waited for the result. I wait... and wait... and wait...

With an 8GB RAM and an Intel i5 CPU, why is it taking so long? I terminated the process and tried computing the 40th term. It took about a second. I put a check and was shocked to find that the above recursive function was called 204,668,309 times while computing the 40th term.

More than 200 million times? Is it reporting function calls or scam of some government?

The Dynamic Programming solution computes 100th Fibonacci term in less than fraction of a second, with a single function call, taking linear time and constant extra memory.

A recursive solution, usually, neither pass all test cases in a coding competition, nor does it impress the interviewer in an interview of company like Google, Microsoft, etc.

The most difficult questions asked in competitions and interviews, are from dynamic programming. This book takes Dynamic Programming head-on. It first explain the concepts with simple examples and then deep dives into complex DP problems.

Citeste mai mult

73.63Lei

73.63Lei

Primesti 73 puncte

Important icon msg

Primesti puncte de fidelitate dupa fiecare comanda! 100 puncte de fidelitate reprezinta 1 leu. Foloseste-le la viitoarele achizitii!

Livrare in 2-4 saptamani

Plaseaza rapid comanda

Important icon msg

Poti comanda acest produs introducand numarul tau de telefon. Vei fi apelat de un operator Libris.ro in cele mai scurt timp pentru prealuarea datelor necesare.

Completeaza mai jos numarul tau de telefon

Descrierea produsului


I wanted to compute 80th term of the Fibonacci series. I wrote the rampant recursive function,

int fib(int n){

return (1==n -- 2==n) ? 1: fib(n-1) + fib(n-2);

}

and waited for the result. I wait... and wait... and wait...

With an 8GB RAM and an Intel i5 CPU, why is it taking so long? I terminated the process and tried computing the 40th term. It took about a second. I put a check and was shocked to find that the above recursive function was called 204,668,309 times while computing the 40th term.

More than 200 million times? Is it reporting function calls or scam of some government?

The Dynamic Programming solution computes 100th Fibonacci term in less than fraction of a second, with a single function call, taking linear time and constant extra memory.

A recursive solution, usually, neither pass all test cases in a coding competition, nor does it impress the interviewer in an interview of company like Google, Microsoft, etc.

The most difficult questions asked in competitions and interviews, are from dynamic programming. This book takes Dynamic Programming head-on. It first explain the concepts with simple examples and then deep dives into complex DP problems.

Citeste mai mult

Parerea ta e inspiratie pentru comunitatea Libris!

Istoricul tau de navigare

Acum se comanda

Noi suntem despre carti, si la fel este si

Newsletter-ul nostru.

Aboneaza-te la vestile literare si primesti un cupon de -10% pentru viitoarea ta comanda!

*Reducerea aplicata prin cupon nu se cumuleaza, ci se aplica reducerea cea mai mare.

Ma abonez image one
Ma abonez image one