4. Data Structures & Algorithms

Data Structures and Algorithms in Python - Full Course for Beginners by freeCodeCamp.org

The Computer Science Fundamentals

Data Structures & Algorithms (DSA) is the fundamentals of computer science; coding interviews are applications of its concepts.

A coding interview is a technical challenge where a candidate is asked to solve a coding problem. Many companies, including FAANG, love to play these games to evaluate you. Some neglect to prepare for them, arguing that they are irrelevant to your daily work. However, that’s not a prudent strategy as you’ll have to play by this rule one way or another.

Start with freeCodeCamp’s Python course on DSA for beginners. Having cracked many FAANG interviews, including Google’s, I can assure you that this video is everything you need to crack yours.

▶️ PK's Google Interview - from coding to salary negotiation

  • ⌨️ (00:00:00) Introduction
    ⌨️ (00:01:43) Binary Search Linked Lists and Complexity
    ⌨️ (00:03:43) Introduction
    ⌨️ (00:08:35) Problem
    ⌨️ (00:12:17) The Method
    ⌨️ (00:13:55) Solution
    ⌨️ (00:50:52) Complexity and Big O notation
    ⌨️ (01:24:57) Binary Search vs Linear Search
    ⌨️ (01:31:40) Generic Binary Search
    ⌨️ (01:40:08) Summary and Conclusion
    ⌨️ (01:44:30) Assignment Walkthrough
    ⌨️ (01:45:05) Introduction
    ⌨️ (01:50:01) Problem- Rotated Lists
    ⌨️ (01:53:02) The Method
    ⌨️ (01:54:03) Solution
    ⌨️ (02:30:47) Summary and Conclusion
    ⌨️ (02:33:29) Binary Search Trees Python Tutorial
    ⌨️ (02:34:41) Introduction
    ⌨️ (02:37:36) Problem
    ⌨️ (02:38:40) The Method
    ⌨️ (03:13:58) Binary tree
    ⌨️ (03:27:16) Traversing Binary Tree
    ⌨️ (03:36:10) Binary Search Tree
    ⌨️ (04:22:37) Self-Balancing Binary Trees and AVL Trees
    ⌨️ (04:26:27) Summary and Conclusion
    ⌨️ (04:30:33) Hash Tables and Python Dictionaries
    ⌨️ (04:31:09) Introduction
    ⌨️ (04:34:00) Problem
    ⌨️ (04:40:28) Data List
    ⌨️ (04:42:52) Hash Function
    ⌨️ (04:54:52) Basic Hash Table Implementation
    ⌨️ (05:03:07) Handling Collisions with Linear Probing
    ⌨️ (05:09:24) Summary and Conclusion
    ⌨️ (05:16:47) Sorting Algorithms and Divide & Conquer
    ⌨️ (05:17:48) Introduction
    ⌨️ (05:20:19) Problem
    ⌨️ (05:21:27) The Method
    ⌨️ (06:40:49) Custom Comparison Functions
    ⌨️ (06:48:53) Summary and Conclusion
    ⌨️ (06:54:57) Recursion Memoization & Dynamic Programming
    ⌨️ (06:56:37) Introduction
    ⌨️ (07:00:04) Problem
    ⌨️ (07:04:28) The Method
    ⌨️ (07:06:21) Solution
    ⌨️ (08:06:13) Knapsack Problems
    ⌨️ (08:08:48) The Method
    ⌨️ (08:09:24) Solution
    ⌨️ (08:43:26) Summary and Conclusion
    ⌨️ (08:44:05) Graph Algorithms BFS, DFS & Shortest Paths
    ⌨️ (08:45:02) Introduction
    ⌨️ (08:51:00) Graph Data Structure
    ⌨️ (09:15:57) Graph Algorithms - Breadth-First Search
    ⌨️ (09:37:28) Depth-First Search
    ⌨️ (10:08:26) Shortest Paths
    ⌨️ (10:40:39) Summary and Conclusion
    ⌨️ (10:42:21) Python Interview Questions Tips & Advice
    ⌨️ (10:43:09) Introduction
    ⌨️ (10:44:08) The Method
    ⌨️ (10:47:10) Solution
    ⌨️ (12:30:51) Summary and Conclusion

  • 🟢 Lesson 1 - Binary Search, Linked Lists and Complexity

    💻 Linear and Binary Search
    💻 Problem Solving Template
    💻 Linked Lists in Python

    🟢 Assignment 1 - Binary Search Practice

    💻 Starter Notebook

    🟢 Lesson 2 - Binary Search Trees, Traversals and Recursion

    💻 Binary Search Trees in Python
    💻 Problem Solving Template
    💻 Linked Lists in Python

    🟢 Assignment 2 - Hash Tables and Python Dictionaries

    💻 Starter Notebook

    🟢 Lesson 3 - Sorting Algorithms and Divide & Conquer

    💻 Sorting and Divide & Conquer
    💻 Problem Solving Template

    🟢 Assignment 3 - Divide and Conquer Practice

    💻 Starter Notebook

    🟢 Lesson 4 - Recursion and Dynamic Programming

    💻 Problem-solving template
    💻 Dynamic Programming problems

    🟢 Lesson 5 - Graph Algorithms (BFS, DFS & Shortest Paths)

    💻 Graphs and Graph Algorithms (Starter Notebook)

    🟢 Project - Step-by-Step Solution to a Programming Problem

    💻 Starter Notebook

    🟢 Lesson 6 - Python Interview Questions, Tips & Advice

    💻 Problem solving template
    💻 Coding problem 1
    💻 Coding problem 2

Resources

✏️ Created by Aakash N S, founder and CEO of Jovian.
🔗 Course website
▶️ I rejected a $360k Google Offer

 
Previous
Previous

3. Professional Portfolio

Next
Next

5. LeetCode