Skip to content

Latest commit

 

History

History
67 lines (42 loc) · 2.15 KB

CS_Graduate_Algorithms.md

File metadata and controls

67 lines (42 loc) · 2.15 KB

Dynamic Programming

Videos I find useful.

https://www.youtube.com/playlist?list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb

https://courses.csail.mit.edu/6.006/spring11/exams/notes3-dp

https://www.quora.com/What-are-the-top-10-most-popular-dynamic-programming-problems-among-interviewers

Ultimately from what I've understood from the MIT lectures, there are 5 steps to really solving a DP.

  1. Figure out how many sub problems there are
  2. Guess how to solve the sub problems.
  3. Relate the subproblems to solutions
  4. Find a recursive algorithm which solves the sub problems
  5. Solve the original problem.

Sub problems typically break down into 3 variations.

prefix which means it makes sense to start from the beginning of the 'list' and work forwards (correct?) so for this case doing fibbonacci it doesn't make sense to start with the nth value and work backwards because you don't know n, you don't know n-1... you know 0, so start with 0. (I think this makes sense?)

suffix which means it makes sense to start from the end of the 'list' and work backwards (correct?) sometimes the later values need to be considered

Other good notes

http://jeffe.cs.illinois.edu/teaching/algorithms/

Office Hours

Spring '18

https://www.youtube.com/watch?v=Qx_Nbv0bhfI

https://www.youtube.com/watch?v=wXGrolB-So8

Older

https://www.youtube.com/watch?v=SyeHo630M_w&feature=youtu.be&t=366

https://www.youtube.com/watch?v=HBqJ_vn6Afs

Course Webpage

(old) https://8803ga.wordpress.com/lecture-schedule/

https://gt-algorithms.com/spring18/

Book

http://www.freetechbooks.com/index.php/algorithms-t311.html

http://books.goalkicker.com/AlgorithmsBook/

http://www.cse.iitd.ernet.in/~ssen/csl356/notes/root.pdf

Online Resources:

https://www.geeksforgeeks.org/fundamentals-of-algorithms/#DynamicProgramming

https://www.quora.com/How-can-one-start-solving-dynamic-programming-problems

https://www.hackerrank.com/domains/algorithms/dynamic-programming

https://leetcode.com/tag/dynamic-programming/

Big Oh Comparisons

http://cooervo.github.io/Algorithms-DataStructures-BigONotation/

Recurrence Calculations

http://jeffe.cs.illinois.edu/teaching/algorithms/notes/99-recurrences.pdf