Skip to content
Hello Python

Where is the weak link?

Map 93 reviewed Python Interview Skills across Patterns, Data Structures, and Algorithms. Filter by a recognition signal or open the family that needs reinforcement.

recognize → choose → prove

Showing 93 Skills

Family 1 of 3

Patterns

Recognize reusable problem shapes and preserve their invariants.

28 Patterns
  1. Two Pointers

    Coordinate two indices to eliminate candidate pairs or partition an ordered search space.

    Open
  2. Sliding Window

    Maintain an incrementally updated contiguous range instead of recomputing every subarray.

    Open
  3. Fixed-size Window

    Slide a window of constant length while adding the entering value and removing the leaving value.

    Open
  4. Variable-size Window

    Expand and contract a window to preserve a validity invariant and optimize its length or score.

    Open
  5. Prefix Sum

    Precompute cumulative aggregates so range queries become constant-time differences.

    Open
  6. 2D Prefix Sum

    Use cumulative matrix regions and inclusion-exclusion to answer rectangular range queries.

    Open
  7. Difference Array

    Encode range updates at boundaries and reconstruct final values with a prefix accumulation.

    Open
  8. Monotonic Stack

    Maintain ordered unresolved candidates for next-greater, next-smaller, and span problems.

    Open
  9. Monotonic Queue

    Maintain a deque ordered by value to query window extrema while elements enter and leave.

    Open

Family 2 of 3

Data Structures

Choose storage and access behavior that matches the operations.

23 Data Structures
  1. Array

    Contiguous indexed sequence used for random access, scanning, and in-place transformations.

    Open
  2. Matrix / Grid

    Two-dimensional indexed data commonly treated as rows, columns, or an implicit graph.

    Open
  3. String

    Immutable character sequence used in parsing, matching, sliding-window, and dynamic-programming tasks.

    Open
  4. Hash Map

    Key-value structure providing average constant-time lookup, update, and frequency aggregation.

    Open
  5. Hash Set

    Unique-key structure for average constant-time membership and duplicate detection.

    Open
  6. Linked List

    Node sequence connected by references, favoring local insertion over random access.

    Open
  7. Stack

    Last-in-first-out structure for nested state, expression evaluation, and iterative traversal.

    Open
  8. Queue

    First-in-first-out structure for breadth-first traversal, scheduling, and ordered processing.

    Open
  9. Deque

    Double-ended queue supporting constant-time insertion and removal at both ends.

    Open
  10. Heap

    Partially ordered tree-backed structure supporting efficient minimum or maximum extraction.

    Open
  11. Priority Queue

    Abstract queue that removes the highest-priority item, commonly implemented with a heap.

    Open
  12. Tree

    Hierarchical acyclic structure used for recursive aggregation, search, and ordered relationships.

    Open

Family 3 of 3

Algorithms

Apply explainable procedures with explicit preconditions and bounds.

42 Algorithms
  1. Search

    Locate a value, state, path, or feasible answer inside an explicit or implicit search space.

    Open
  2. Linear Search

    Inspect candidates sequentially when no exploitable ordering or index is available.

    Open
  3. Binary Search

    Repeatedly halve an ordered or monotone search space using a boundary invariant.

    Open
  4. Depth-first Search

    Explore a branch completely before backtracking, using recursion or an explicit stack.

    Open
  5. Backtracking

    Enumerate constrained candidates by choosing, exploring, pruning, and undoing decisions.

    Open
  6. Recursion

    Solve a problem by reducing it to smaller instances with explicit base cases.

    Open
  7. Greedy

    Make locally optimal choices only when an exchange or invariant proves global correctness.

    Open
  8. Divide and Conquer

    Split a problem into independent subproblems, solve them recursively, and combine results.

    Open
  9. Sorting

    Reorder values by a comparison or key to expose structure for subsequent processing.

    Open
  10. Merge Sort

    Recursively sort halves and merge them in stable O(n log n) time with auxiliary storage.

    Open