Data Structures and Algorithms in Python: DSA Course
Master Python DSA for LEETCODE & Technical Interviews | 50-Day Structured Learning Path with 117 Coding Exercises
Master Python DSA for LEETCODE & Technical Interviews | 50-Day Structured Learning Path with 117 Coding Exercises
Looking for the best data structures and algorithms Python course? This structured DSA course is designed for anyone preparing for LEETCODE challenges and technical coding interviews. With 117 hands-on coding exercises spread across 50 structured days, you'll master every essential data structure in Python and algorithm needed to ace your next interview.
Student Testimonials:
"Amazing Course" - Erick Odhiambo Otieno
"I never seen the best course in this learning platform. It is the best course if you want to understand DSA to the core. you should try it guys. thanks a lot sir for this best course." - Nibru Kefyalew
"Great course!" - Shay Keren
"Very thorough and methodical" - Shahjamal Biswas
"Very intuitive and in-depth! so far" - Nikhil Valse
"A good explanation for this problem." - Bhuvan Akoju
"So far good explanation on DS ,recursion and quizzes." - Anuradha Yadavalli
"the instructor is very good at explaining and simplifying complex concept. this course cover all the DSA module in depth withs great examples" - RODRIGUE NGONGANG
"excellent" - Neha Nayak
"Awesomly attractive course!" - Dariusz Jenek
"Great one" - Wilson Edafe
"Excellent Teaching" - Ameeruddin Syed
"It is an excellent platform !!" - Subhajit Bera
About the Course:
Welcome to the Data Structures and Algorithms Coding Interview Bootcamp with Python!
The primary goal of this course is to prepare you for coding interviews at top tech companies. By tackling one problem at a time and understanding its solution, you'll accumulate a variety of tools and techniques for conquering any coding interview.
Daily Data Structures and Algorithms Coding Challenges:
The course is structured around daily coding challenges. Consistent practice will equip you with the skills required to ace coding interviews. For the next 40 days commit to yourself to practice atleast 2 coding interview questions everyday. You don't need any setup for this as the daily coding problem challenges can be solved in the coding environment provided by Udemy. The course will automatically track your progress and you just need to spend your time making actual progress everyday.
Topics Covered:
We start from the basics with Big O analysis, then move on to very important algorithmic techniques such as Recursion, Backtracking and Dynamic Programming Patters. After this we move to cover common data structures, and discuss real problems asked in interviews at tech giants such as Google, Meta, Amazon, Netflix, Apple, and Microsoft.
For each question, we will:
Discuss the optimal approach
Explain time and space complexity
Code the solution in Python (you can follow along in your preferred language)
Additional Resources :
The course includes downloadable resources, motivational trackers, and cheat sheets.
Course Outline:
Day 1: Arrays, Big O, Sorted Squared Array, Monotonic Array
Day 2:Recursion,k-th symbol in Grammar,Josephus problem
Day 3:Recursion, Tower of Hanoi, Power Sum
Day 4:Backtracking, Permutations, Permutations 2
Day 5:Backtracking, Subsets, Subsets 2
Day 6:Backtracking, Combinations, Combinations Sum 1
Day 7:Backtracking,Combinations Sum 2,Combinations Sum 3
Day 8:Backtracking,Sudoku Solver, N Queens
Day 9:Dynamic Programming, Fibonacci, Climbing Stairs
Day 10:Dynamic Programming, Min Cost Climbing Stairs, Tribonacci
Day 11:Dynamic Programming, 01 Knapsack, Unbounded Knapsack
Day 12:Dynamic Programming, Target Sum, Partition Equal Subset Sum
Day 13:Dynamic Programming, LCS, Edit Distance
Day 14:Dynamic Programming, LIS, Max Length of Pair Chain, Russian Doll Envelopes
Day 15:Dynamic Programming, Palindromic Substrings, Longest Palindromic Substring, Longest Palindromic Subsequence
Day 16:Dynamic Programming, Palindrome Partitioning, Palindrome Partitioning 2
Day 17:Dynamic Programming, Word Break, Matrix Chain Multiplication
Day 18:Dynamic Programming, Kadane's algorithm - Max Subarray, Maximum Product Subarray
Day 19:Greedy Algorithms - Fractional Knpasack, Non overlapping Intervals
Day 20:Greedy Algorithms - Jump Game 1, Minimum # of arrows to burst baloons
Day 21:Greedy Algorithms - Two City Scheduling, Boats to Save people
Day 22:Greedy Algorithms - Task Scheduler, Largest Number
Day 23:Greedy Algorithms - Gas Stations, Jump Game 2
Day 24: Arrays, Rotate Array, Container with Most Water
Day 25: Hash Tables, Two Sum, Isomorphic Strings
Day 26: Strings, Non-Repeating Character, Palindrome
Day 27: Strings, Longest Unique Substring, Group Anagrams
Day 28: Searching, Binary Search, Search in Rotated Sorted Array
Day 29: Searching, Find First and Last Position, Search in 2D Array
Day 30: Sorting, Bubble Sort, Insertion Sort
Day 31: Sorting, Selection Sort, Merge Sort
Day 32: Sorting, Quick Sort, Radix Sort
Day 33: Singly Linked Lists, Construct SLL, Delete Duplicates
Day 34: Singly Linked Lists, Reverse SLL, Cycle Detection
Day 35: Singly Linked Lists, Find Duplicate, Add 2 Numbers
Day 36: Doubly Linked Lists, DLL Remove Insert, DLL Remove All
Day 37: Stacks, Construct Stack, Reverse Polish Notation
Day 38: Queues, Construct Queue, Implement Queue with Stack
Day 39: Binary Trees, Construct BST, Traversal Techniques
Day 40: Pre order and In order Traversal of Binary Tree - Iterative
Day 41: Post Order Traversal Iterative, Path Sum 2
Day 42: Construct Binary Tree from Pre and In order Traversal ^ In and Post order Traversal
Day 43: Binary Trees, Level Order Traversal, Left/Right View
Day 44: Level order Trav 2, ZigZag Traversal
Day 45: Vertical order Traversal, Sum root to leaf numbers
Day 46: Binary Trees, Invert Tree, Diameter of Tree
Day 47: Binary Trees, Convert Sorted Array to BST, Validate BST
Day 48: Lowest common Ancestor of BST, Unique BST 2
Day 49: Lowest common Ancestor of Binary Tree, Unique BST 1
Day 50: Serialize and Deserialize Binary Tree, N-ary Tree Level Order Traversal
Day 51: Heaps, Max Heap, Min Priority Queue
Day 52: Graphs, BFS, DFS
Day 53: Graphs, Number of Connected Components, Topological Sort
Day 54: Number of Provinces, Find if path exists in Graph
Day 55: Number of Islands, Numbers with same consecutive differences
My confidence in your satisfaction with this course is so high that we offer a complete money-back guarantee for 30 days! Thus, it's a totally risk-free opportunity. Register today, facing ZERO risk and standing to gain EVERYTHING.
So what are you waiting for? Join the best Python Data Structures & Algorithms Bootcamp on Udemy.
I'm eager to see you in the course.
Let's kick things off! :-)
Jackson
FAQ area empty
What you're going to get from this course
Xem trướcWelcome! How to make best use of this course (Please Watch)
Xem trướcDay 1 Goals
Xem trướcIntroduction to Data Structures
Introduction to Big O, Time Complexity
Asymptotic Analysis and Big O
Big O Space Complexity
Xem trướcBig O Logarithm
Xem trướcArrays: Data Structures Crash Course
Quiz: Arrays
CODING EXERCISES
Xem trướcHow to log output to debug code in Udemy Editor
CODING INTERVIEW Q1 (Easy): Sorted Squared Array
Xem trướcCoding Exercise: Sorted Squared Array
Method 1, Big O Analysis
Python Code - Method 1
Quiz - Method 1 (Sorted squarred array)
Method 2
Python Code - Method 2
Quiz - Method 2 (Sorted squarred array)
CODING INTERVIEW Q2 (Easy): Monotonic Array
Coding Exercise: Monotonic Array
Method and Big O analysis
Python Code - Monotonic Array
Quiz - Monotonic Array
Role Play( Beta) : Sorted Squarred Array
Celebrating Milestones
Day 2 Goals
Coding Interview Q1(Medium): Rotate Array
Coding Exercise: Rotate Array
Method and Big O analysis
PYTHON Code Solution
Python Code Method 2
Coding Interview Q2(Medium): Container with most water
Coding Exercise: Container with most water
Method 1 and Big O analysis
PYTHON Code Method 1
Method 2 and Big O analysis
PYTHON Code Method 2
For Quick Reference : Latest Additions to the Course
Best Study Technique to prepare for Coding Interviews
Day 2 Goals
Recursion Basics
Recursive Leap of Faith
Visualising Recursion
Recursion vs Iteration
Ways to write Base condition
Recurrence relation
How to Solve Recursion Questions
Recursion Approaches - 0 to N and N to 0
Recursion is everywhere
Complexity Analysis of Recursive Solutions
Quiz: Recursion
CODING INTERVIEW QUESTION (Medium): k-th symbol in Grammar
Coding Exercise (k-th symbol in Grammar)
Approach(k-th symbol in Grammar)
Pseudocode (k-th symbol in Grammar)
Complexity Analysis(k-th symbol in Grammar)
Python Solution (k-th symbol in Grammar)
Quiz - k-th symbol in Grammar
CODING INTERVIEW QUESTION (Medium): Josephus problem
Coding Exercise: Josephus problem
Approach 1
Pseudocode
Complexity Analysis
Python Solution 1: Josephus problem Method 1
Quiz - Josephus problem Method 1
Approach 2
Pseudocode
Complexity Analysis
Python Solution 2 : Josephus problem Method 2
Quiz - Josephus problem Method 2
Approach 3
Complexity Analysis
Python Solution 3 : Josephus problem Method 3
Quiz - Josephus problem Method 3
Celebrating Milestones
Day 3 Goals
CODING INTERVIEW QUESTION (Medium): Tower of Hanoi
Coding Exercise(Tower of Hanoi)
Identifying that wew can use Recursion
Approach
Recursion Tree
Python Solution : Tower of Hanoi
Complexity Analysis : Tower of Hanoi
CODING INTERVIEW QUESTION(Medium): Power Sum
Coding Exercise: Power Sum
Method and Big O Analysis
Python Solution: Power Sum
Celebrating Milestones
Day 4 Goals
What is Backtracking
How is it different from Recursion ?
How does Backtracking work ?
Pass by reference / change inplace
Blueprint to solve questions using Backtracking
Identify when to use Backtracking
Quiz: Backtracking
CODING INTERVIEW QUESTION (Medium): Permutations
Coding Exercise ( Permutations)
Approach
Pseudocode
Python Solution : Permutations
Complexity Analysis
CODING INTERVIEW QUESTION(Medium): Permutations 2
Permutations 2
Approach
Pseudocode
Python Code: Permutations 2
Complexity Analysis : Permutations 2
Celebrating Milestones
Day 5 Goals
CODING INTERVIEW QUESTION(Medium): Subsets
Subsets
Method
Subsets - Comparison with Backtracking Blueprint
Subsets - Complexity Analysis
Python Code - Subsets
CODING INTERVIEW QUESTION(Medium): Subsets 2
Coding Exercise: Subsets 2
Approach
Python Code: Subsets 2
Subsets 2: Complexity Analysis
Celebrating Milestones
Day 6 Goals
CODING INTERVIEW QUESTION(Medium): Combinations
Coding Exercise: Combinations
Approach
Combinations : Complexity Analysis
Python Code : Combinations
Combinations: Optimisation
Python Code: Combinations with Optimisation
CODING INTERVIEW QUESTION ( Medium) : Combinations Sum 1
Combinations Sum 1
Approach
Complexity Analysis part 1
Sidenote: Max number of nodes
Complexity Analysis part 2
Python Code: Combinations Sum 1
Celebrating Milestones
Day 7 Goals
CODING INTERVIEW QUESTION (Medium): Combinations Sum 2
Coding Exercise: Combinations Sum 2
Approach
Complexity Analysis
Python Code: Combination Sum 2
CODING INTERVIEW QUESTION ( Medium) : Combinations Sum 3
Coding Exercise: Combinations Sum 3
Combination Sum 3 - Short explanation
Celebrating Milestones
Day 8 Goals
CODING INTERVIEW QUESTION(Hard) : Sudoku Solver
Sudoku Solver
Approach
Pseudocode
IsValid check for Sudoku Solver
Python Code : Sudoku Solver
Complexity Analysis
Another approach - Sudoku Solver ( Python Code)
CODING INTERVIEW QUESTION(Hard): N Queen
Coding Exercise: N Queen
Approach
Pseudocode
Python Code: N Queen
Complexity Analysis
Day 9 Goals
Introduction to Dynamic Programming (DP)
Dynamic Programming - Patterns
Approach to solve DP(Dynamic Programming) Questions
Why writing the Recursive solution helps to write the Bottom up approach
Identifying Dynamic Programming Questions
Quiz: Dynamic Programming
CODING INTERVIEW QUESTION(Easy): Fibonacci
Coding Exercise: Fibonacci
Approaches
Approach 1: Recursion
Complexity Analysis: Approach 1 - Recursion
Python Code - Recursion
Approach 2: Memoization
Complexity Analysis : Approach 2 - Memoization
Python Code: Approach 2 - Memoization
Approach 3: Tabulation
Complexity Analysis: Approach 3 - Tabulation
Python Code: Approach 3 - Tabulation
Approach 4: Space Optimised Tabulation + Complexity Analysis
Python Code: Approach 4 -Space Optimised Tabulation + Complexity Analysis
CODING INTERVIEW QUESTION(Easy): Climbing Stairs
Coding Exercise: Climbing Stairs
Approach
Day 10 Goals
CODING INTERVIEW QUESTION(Easy): Min Cost Climbing Stairs
Coding Exercise: Minimum Cost Climbing Stairs
Recursive Approach
Complexity Analysis
Python Code: Recursive Approach
Memoization Approach
Complexity Analysis
Python Code: Memoization Approach
Tabulation Approach
Complexity Analysis
Python Code: Tabulation Approach
CODING INTERVIEW QUESTION(Easy): Tribonacci
Coding Exercise: Tribonacci
Day 11 Goals
CODING INTERVIEW QUESTION(Medium): 0/1 Knapsack
Coding Exercise: 01 Knapsack
Approach 1: Recursion
Recursive Approach: Pseudocode
Recursive Approach: Complexity Analysis
Python Code : Recursive Approach
Approach 2: Memoization
Memoization: Pseudocode
Python Code: Memoization
Memoization: Complexity Analysis
Approach 3: Tabulation
Python Code: Tabulation
Tabulation: Complexity Analysis
Approach 4: Space Optimised Tabulation Approach
Python Code: Space Optimised Tabulation
Space Optimised Tabulation Approach: Complexity Analysis
CODING INTERVIEW QUESTION(Medium): Unbounded Knapsack
Coding Exercise: Unbounded Knapsack
Tabulation Approach
Complexity Analysis
Python Code: Unbounded Knapsack
Day 13 Goals
CODING INTERVIEW QUESTION(Medium): LCS
Coding Exercise: LCS ( Longest Common Subsequence)
Approach 1: Recursion
Pseudocode
Recursion Tree and Complexity Analysis
Python Code: LCS
Approach 2: Memoization
Python Code: Memoization - LCS
Approach 3: Tabulation
Tabulation: Complexity Analysis
Python Code : Tabulation - LCS
Approach 4: Space Optimised Tabulation - LCS
Python Code : Space Optimised Tabulation - LCS
CODING INTERVIEW QUESTION(Medium): Edit Distance
Coding Exercise: Edit Distance
Identifying this as an LCS Type Question
Approach 1: Recursion
Pseudocode
Recursion: Complexity Analysis
Python Code: Recursive Approach(Edit Distance)
Approach 2: Memoization
Python Code: Memoization(Edit Distance)
Approach 3: Tabulation
Tabulation: Complexity Analysis
Python Code: Tabulation (Edit Distance)
Approach 4: Space Optimised Tabulation
Python Code: Space Optimised Tabulation ( Edit Distance)
Day 14 Goals
CODING INTERVIEW QUESTION(Medium): Longest Increasing Subsequence (LIS)
Coding Exercise: LIS
Approach 1: Recursion - LIS
Recursion Tree
Complexity Analysis - Recursion - LIS
Python Code - Recursion - LIS
Approach 2: Memoization
Complexity Analysis - Memoization
Python Code - Memoization - LIS
Approach 3: Tabulation - using a 2D dp array
Dry run
Complexity Analysis - Tabulation - using a 2D dp array
Python Code - Tabulation using a 2D dp array - LIS
Approach 4: Tabulation - using a 1D dp array
Dry run
Complexity Analysis- Tabulation - using a 1D dp array
Python Code-Tabulation - using a 1D dp array
Approach 5: using Binary Search - LIS
Part 1 - Approach 5: using Binary Search - LIS
Part 2 - Approach 5: using Binary Search - LIS
Binary Search for this question ( refer Binary Search section for more details)
Complexity Analysis - Approach 5: using Binary Search - LIS
Python Code - Approach 5: using Binary Search - LIS
CODING INTERVIEW QUESTION(Medium): Max Length of Pair Chain
Coding Exercise: Max Length of Pair Chain
Why Sort ?
Approach
Complexity Analysis
Python Code - Max Length of Pair Chain
CODING INTERVIEW QUESTION(Hard): Russian Doll Envelopes
Coding Exercise: Russian Doll Envelopes
Approach
Complexity Analysis
Python Code
Python Code - using Binary Search variant for LIS
Day 15 Goals
Introduction to Gap Strategy or Length wise Iteration
CODING INTERVIEW QUESTION(Medium): Palindromic Substrings
Palindromic Substrings
Intuition for Approach
Idetifying this as a DP question
Approach: Recursion with memoization
Pseudocode
Filling the Memoization table
Iterate length wise
Recursion with memoization: Complexity analysis
Python Code: Recursion with memoization
Tabulation approach
Tabulation approach: Complexity Analysis
Python Code: Tabulation
CODING INTERVIEW QUESTION(Medium): Longest Palindromic Substring
Coding Exercise: Longest Palindromic Substring
Approach (Tabulation)
Complexity Analysis
Python Code
CODING INTERVIEW QUESTION(Medium): Longest Palindromic Subsequence
Coding Exercise: Longest Palindromic Subsequence
Approach
Complexity Analysis
Python Code
Day 16 Goals
Introduction to the Partition method
CODING INTERVIEW QUESTION(Medium): Palindrome Partitioning
Coding Exercise: Palindrome Partitioning
Approach
Pseudocode
Side note: Computing n C r
Complexity Analysis
Python Code: Palindrome Partitioning
CODING INTERVIEW QUESTION(Hard):Palindrome Partitioning 2 ( Minimum Cuts) - Hard
Coding Exercise: Palindrom Partitioning 2 ( Min Cuts)
Approach 1: Recursion
Python Code: Recursion - Palindrome Partitioning 2
Approach 2: Memoization
Python Code: Memoization - Palindrome Partitioning 2
Tabulation - Approach A : Palindrome Partitioning 2
Dry Run
Pseudocode
Python Code : Tabulation - Approach A : Palindrome Partitioning 2
Complexity Analysis
Tabulation - Approach B : Palindrome Partitioning 2
Dry run
Pseudocode
Python Code: Tabulation - Approach B : Palindrome Partitioning 2
Complexity Analysis
Day 17 Goals
CODING INTERVIEW QUESTION(Medium): Word Break
Coding Exercise: Word Break
Approaches
Approach 1: Tabulation
Pseudocode
Complexity Analysis
Python Code
APPROACH 2 : Part A : Memoization
Pseudocode
Complexity Analysis
Python Code - Recursion
Python Code- Memoization
APPROACH 2: Part B: Tabulation
Pseudocode
Complexity Analysis
Python Code
CODING INTERVIEW QUESTION(Hard): Matrix Chain Multiplication
Coding Exercise: Matrix Chain Multiplication
How to do Matrix Multiplication
Back to the Question
Intuition
Recursive approach
Recursive Approach - Pseudocode
Complexity Analysis
Python Code - Recursive approach
Memoization approach
Complexity Analysis
Python Code - Memoization
Tabulation Approach
Complexity Analysis
Python Code - Tabulation Approach
What is a Greedy Algorithm ?
What are Greedy Algorithms used for ?
What problems are suitable for Greedy Algorithms ?
How the 2 properties interact with each other (Optional)
Greedy Approach vs Dynamic Programming
Quiz - Greedy
CODING INTERVIEW QUESTION : Fractional Knapsack
Coding Exercise : Fractional Knapsack
Approach
Pseudocode
Complexity Analysis
Python Code - Fractional Knapsack
Quiz - Fractional Knpasack
CODING INTERVIEW QUESTION: Non overlapping Intervals
Coding Exercise: Non overlapping Intervals
CODING INTERVIEW QUESTION: Jump Game 1
Coding Exercise: Jump Game 1
Approach
Greedy Approach 1
Greedy Approach 2
Complexity Analysis
Python Code (Greedy Approach) - Jump Game 1
Python Code - For Dynamic Programming approaches
CODING INTERVIEW QUESTION: Minimum # of arrows to burst baloons
Coding Exercise: Minimum # of arrows to burst baloons
CODING INTERVIEW QUESTION: Two City Scheduling
Coding Exercise: Two City Scheduling
Approach
Pseudocode
Complexity Analysis
Python Code - Greedy Approach
Python Code - Dynamic Programming
Quiz - Two City Scheduling
CODING INTERVIEW QUESTION: Boats to Save people
Coding Exercise: Boats to Save people
Day 25 Goals
Hash Table: Data Structures Crash Course
Coding Interview Q1(Easy): Two Sum
Coding Exercise: Two Sum
Method 1, Big O analysis
PYTHON Code
Method 2, Big O analysis
PYTHON Code
Coding Interview Q2(Easy): Isomorphic Strings
Coding Exercise: Isomorphic Strings
Method and Big O analysis
PYTHON Code
Introduction to Sliding Window Pattern
CODING INTERVIEW QUESTION: Max Avg Subarray I
Max Avg Subarray I
Method
Complexity Analysis
Python Code
CODING INTERVIEW QUESTION: Repeated DNA Sequence
Repeated DNA Sequence
Test cases
Method 1
Complexity Analysis
Python Code: Method 1
Method 2
(Optional) Basics - Converting a number from base 4 to base 10
Complexity Analysis
Python Code: Method 2
Understanding the Polynomial Rolling Hash Technique and the Rabin-Karp Algorithm
CODING INTERVIEW QUESTION: Sliding Window Maximum
Sliding Window Maximum
Test Cases
SideNote : Deque Data Structure
Method - Part 1 (Intuition / Observations)
Method - Part 2 (Walkthrough)
Complexity Analysis
Python Code
CODING INTERVIEW QUESTION: Minimum Window Substring
Minimum Window Substring
Test Cases
Method
Walkthrough
Complexity Analysis
Python Code
Day 26 Goals
Data Structures Crash Course: Strings
Coding Interview Q1(Easy): First Non Repeating Character
Coding Exercise: First Non Repeating Character
Method 1 and Big O analysis
PYTHON code
Method 2 and Big O analysis
PYTHON code
Coding Interview Q2(Easy): Is Palindrome ?
Coding Exercise: Is Palindrome ?
Method 1 and Big O analysis
PYTHON code
Method 2 and Big O analysis
PYTHON code
Method 3 and Big O analysis
PYTHON code
Day 28 Goals
Coding Interview Q1 (Easy): Binary Search Algorithm
Coding Exercise: Binary Search Algorithm
Method and Big O analysis
PYTHON Code Iterative
PYTHON Code Recursive
Coding Interview Q2(Medium): Search in rotated sorted array
Coding Exercise: Search in rotated sorted array
Method and Big O analysis
PYTHON Code
Introduction to Merge Intervals Coding Interview Question Pattern
CODING INTERVIEW QUESTION: Merge Intervals
Merge Intervals
Method - Part 1
Method Part 2 - Walkthrough
Complexity Analysis
Python Code
CODING INTERVIEW QUESTION: Insert Interval
Insert Interval
Method Part 1
Method Part 2 - Walkthrough
Complexity Analysis
Python Code
Day 33 Goals
Data Structures Crash Course: Linked Lists
Coding Interview Q1(Medium): Design a Singly Linked List
Coding Exercise: Design a Singly Linked List
Method and Big O analysis
Python Code
Coding Interview Q2: Remove Duplicates
Coding Exercise: Remove Duplicates
Method and Big O analysis
Python Code
Day 36 Goals
Coding Interview Q1: Remove Node, Insert Node
Coding Exercise: Remove Node
Method remove
Python code: Remove
Insert Intro
Method Insert
Coding Exercise: Insert Node
Python code: Insert
Coding Interview Q2: Remove Value, Insert at Position in Doubly Linked List
Coding Exercise :Remove Value in Doubly Linked List
Remove Val Method
Python Code
Insert at Position
Method
Coding Exercise: Insert at Position in DLL
Python Code
Day 39 Goals
Data Structures Crash Course: Trees Introduction
Theory: Binary Trees 1
Proof : height of Balanced Binary tree is floor(log N)
Theory: Binary Tree Terminaologies
What is a BST - Binary Search Tree
Coding Interview Q1: Construct Binary Search Tree,Big O analysis
Coding Exercise: Construct Binary Search Tree
Python Code
Coding Interview Q2 : Traverse - BFS and DFS,Big O analysis
Coding Exercise : Traverse - BFS
Coding Exercise: Traverse - DFS(post , in and pre - order ) - recursive
Python Code - DFS ( Post, In , Pre - Order Traversal of Binary Tree) - Recursive
Python Code
Today's Goal
CODING INTERVIEW QUESTION: Pre order Traversal of Binary Tree : Iterative
Pre order Traversal : Iterative
Approach
Complexity Analysis
Python Code: Preorder Traversal : Iterative
CODING INTERVIEW QUESTION: Inorder Traversal of Binary Tree - Iterative
Inorder Traversal with stack
Approach
Complexity Analysis
Python Code - Inorder Traversal of Binary Tree
Today's Goal
CODING INTERVIEW QUESTION: Post order traversal of Binary Tree - Iterative
Post Order Traversal of Binary Tree - Iterative
Approach
Complexity Analysis
Python Code - Postorder Traversal of Binary Tree
CODING INTERVIEW QUESTION: Path Sum 2
Path Sum 2
Approach
Complexity Analysis
Python Code
Today's Goal
CODING INTERVIEW Q: Construct Binary Tree from Pre order and In order Traversal
Coding Exercise: Construct Binary Tree from Pre order and In order Traversal
CODING INTERVIEW Q: Construct Binary Tree from Inorder and Post order traversal
Coding Exercise: Construct Binary Tree from Inorder and Post order traversal
Day 43 Goals
Coding Interview Q1(Medium): Level Order traversal
Coding Exercise: Instance method, Level Order traversal
Insert method
Python code
Level Order Traversal Method and Big O analysis
Python code - Level order traversal
Coding Interview Q2(Medium): Left / Right view
Coding Exercise: Left / Right view
Method and Big O analysis
Python code
Day 52 Goals
Data Structures Crash Course: Graphs Introduction
Data Structures Crash Course: Graphs - Part 2
Data Structures Crash Course: Graphs - Part 3
Coding Interview Q1: BFS, Adjacency List,Big O analysis
Python Code
BFS, Adjacency Matrix
Python Code
Coding Interview Q2: DFS, Recursive, Big O analysis
Python Code
DFS Iterative
Python Code
Basic knowledge of Python ( things like write a loop, function etc)
No experience with Data Structures or Algorithms required
Master data structures in Python - Arrays, LinkedLists, Stacks, Queues, Trees, Graphs, Hash Tables
Solve DSA problems for LEETCODE and technical interviews at Google, Amazon, Microsoft
Dynamic Programming, Backtracking, and advanced algorithm techniques
Time and Space Complexity analysis (Big O notation) for optimization
Real coding interview question patterns from FAANG companies