Problem Solving Interviews Preparation - Complete Guide

This post is Part-3 of the Series: Experienced Software Developer Interviews - WHERE, WHAT, HOW. Follow my LinkedIn for more.

WHAT to prepare for Problem Solving Interviews?

  1. DATA STRUCTURES
    1. Arrays
    2. Linked List
    3. Stack
    4. Queue
    5. Binary Tree
    6. Binary Search Tree (BST)
    7. Graphs
    8. Trie (Optional)
  2. ALGORITHMIC APPROACHES
    1. Greedy
    2. Recursion & Dynamic Programming (Very Important)
      1. Iterative Approach
      2. Recursion + Memoization Approach
    3. Backtracking
    4. Divide and Conquer
  3. STANDARD TECHNIQUES/PATTERNS
    1. Two-Pointer Technique
    2. Fast and Slow Pointers
    3. Sliding Window
    4. Heap/Priority Queue
    5. Hashing
    6. Breadth-First Search
    7. Depth-First Search
    8. Bit-wise Operations like XOR
  4. FAMOUS ALGORITHMS
    1. Tortoise Hare Algorithm
    2. Dutch National Flag Algorithm
    3. Quick Select Algorithm
    4. Kadane's Algorithm
    5. Lee's Algorithm
    6. Boyer-Moore Algorithm
    7. Task Scheduling Algorithm
    8. Floyd’s Cycle-Finding Algorithm
    9. Morris Traversal Algorithm
    10. Knuth-Morris-Pratt (KMP) Algorithm
    11. Other Graph Algorithms (listed in the next section)

Overall Preparation - CONCEPT WISE

  1. Data Types & Ranges
    • How to derive a range for data type? (Internal working of Bits).
  2. Bit-wise Operations
    • AND, OR, XOR, 1's Complement, 2's Complement
    • (Optional) How are Negative Integers represented?
    • (Optional) Types of Representations: Sign Magnitude Form, 1's Complement Form, 2's Complement Form
  3. Arrays
    • Basics - Creating an array, Assigning Values & Printing the array
    • Types of Arrays - Single Dimensional & Multi-Dimensional
    • Searching
      • Linear Search
      • Binary Search
    • Sorting
      • Selection Sort
      • Insertion Sort
      • Merge Sort
      • Quick Sort
      • Heap Sort (Very Important, used in PriorityQueue data structure)
    • Problems on Arrays
  4. Time Complexity & Space Complexity Analysis
    • O(n)
    • O(logn)
    • O(1)
    • O(n2)
    • O(n3)
    • O(nlogn)
  5. Memory Allocation, Heap, Stack
  6. Dynamic Programming
    • Recursion & its problems. Stack Memory Consumption in Recursion
    • Memoization
    • Optimal Substructure
    • Overlapping Sub problems
    • Iterative Dynamic Programming
    • Problems
  7. Linked List
    • Basics & Implementation
      • Insertion, Deletion, Searching
    • Why Linked List?
    • Linked List Vs Arrays
    • Doubly Linked List
    • Applications of Linked List - Stack, Queue, Deque etc.
    • Problems on Linked List
  8. Stack & Queue
    • Basics & Implementation
    • LIFO Vs FIFO
    • Infix, Postfix & Prefix Notations & Conversions
  9. Binary Trees
    1. Basics & Implementation
      • Structure & Implementation
      • Depth of a Node
      • Height of a Node
      • Types of Trees - Binary Tree, Quad Tree etc.
      • Types of Trees - Full Binary Tree, Complete Binary Tree, Perfect Binary Tree
      • Binary Search Tree & Purpose
    2. Applications of Binary Trees
    3. Traversals
      • Breadth First Search (BFS)
      • Depth First Search (DFS) - PreOrder, InOrder, PostOrder
      • Applications
    4. Balanced Binary Trees & Purpose
      • AVL Tree
      • Red Black Tree
  10. GRAPHS
    1. Basics & Terminology
      • What is Vertex/Node?
      • What is Edge?
      • Weighted Graph Vs Unweighted Graph
      • Directed Graph Vs Undirected Graph
      • Dense Vs Sparse Graph
      • Cyclic Vs Acyclic Graph
      • Strongly Connected vs Weakly Connected Graph
      • In-degree Vs Out-degree
      • Applications of Graphs
    2. Representations/Implementations
      • Using Edges List
      • Using Adjacency Matrix
      • Using Adjacency List
    3. Traversals (BFS & DFS)
    4. Cycle Detection
    5. Standard Algorithms
      1. Dijkstras Algorithm
      2. Bellman Ford Algorithm
      3. Floyd Warshall Algorithm
      4. Prims Algorithm - Minimum Cost Spanning Tree
      5. Kruskals Algorithm - Minimum Cost Spanning Tree
      6. Union Find Algorithm
      7. Topological Sort (Very Important)
      8. Finding Strongly Connected Components of a Graph (Very Important)
      9. Finding Articulation Points & Critical Connections of a Graph
      10. (Optional) Graph Coloring
    6. Problems on Graphs

NOTE:

  • My LinkedIn: https://www.linkedin.com/in/justviswa/. Follow for more updates.
  • Give a few likes for easy access.
  • Do post your questions/comments/opinions/suggestions in the comments section below. I'll make sure to read everyone of them.
  • If you find any broken links/missing content, suggest them in the comments section. I'll update the post accordingly.
  • My Blog: http://justviswa.blogspot.com/ (Will be updated soon)
Comments (1)