Cracking the coding interview 6: Recursion and DP | Earlysun's rising



Cracking the coding interview 6: Recursion and DP | Earlysun's rising

After this chapter, you should be able to come up with a recursion way to solve problem very quickly. Be clear about the base case and when to return.

 

For the dynamic programming:

1. Is it a optimal problem?

2. Does the subproblems share solutions?

If so, you may consider to solve it with dynamic programming. There are two ways to design a dynamic programming algorithm:

1. From the top to bottom.

2. From the bottom to top.

The previous one is easier to consider and write, the cons is it normally use a recursive way, which has higher space use.

The latter one is to build the answer from the bottom and access to target gradually. It needs to calculate every result of subproblems while the former one only solves part of them.

 

For dynamic programming solution, according to CLRS, we usually store it when we made a decision and then recursively call function to output the result.


Read full article from Cracking the coding interview 6: Recursion and DP | Earlysun's rising


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts