Data Structure and Algorithms(general)
Courses
- MIT 6.006: Introduction to Algorithms.
- MIT OCW Fall 2011: videos, lecture notes, etc.
- for example, LC 162 Find Peak Element can be solved using the algorithm introduced in lecture 2.
- MIT OCW Fall 2011: videos, lecture notes, etc.
- MIT 6.046: Design and Analysis of Algorithms.
- Princeton COS206: Algorithms and Data Structure
- Videos, Lecture Notes
- Princeton COS 217 Introduction to Programming Systems
- Lecture Notes (Fall 2006)
Books
- Concrete Mathematics: A Foundation for Computer Science, Second Edition. By: Ronald L. Graham; Donald E. Knuth; Oren Patashnik
- Effective Python: 59 Specific Ways to Write Better Python
Visulization of Algorithms
- VisuAlgo - visualising data structures and algorithms through animation
MISC.
Good interview problems/solutions (from the prospective of interviewers)
- Retiring a Great Interview Problem, by Daniel Tunkelang
- hint: word break problem
Learn DST in Python
Interactive tutorials:
Problem Solving with Algorithms and Data Structures using Python
the most convenient way to learn algorithms and data structure using Python, some of the material I found informative:
- 1.11. Exception Handling
- 1.13. Object-Oriented Programming in Python: Defining Classes
- 1.13.1. A Fraction Class
- 1.13.2. Inheritance: Logic Gates and Circuits
- 2.14. Simulation: Printing Tasks(also a good OOP example)
- 2.21. Implementing an Unordered List: Linked Lists
- 3.6 Performance of List
- 4.6 Stack Frames: Implementing Recursion
- 4.7 Introduction: Visualizing Recursion
- 4.11 Exploring a Maze
- 6.6. Parse Tree
- 6.7. Tree Traversals
- 6.10. Binary Heap Implementation
- 6.13. Binary Search Tree Implementation(check out the deletion operation!)
- 6.17. AVL Tree Implementation
- 7.7 - 7.10 Word Ladder Problem and BFS
- 7.11 - 7.14 Knight’s Tour Problem and DFS
Python 3 Tutorial by Sololearn
Basic Python tutorial