Snowflake Interview Questions — 90 DSA Problems
78 problems with full solutions in Python, Java, C++, JavaScript, Go, Rust.
Most frequently asked Snowflake LeetCode questions for software engineering interviews.
- Design In-Memory File System (HARD) — Hash Table, String, Design, Trie, Sorting
- Happy Number (EASY) — Hash Table, Math, Two Pointers
- Minimum Window Substring (HARD) — Hash Table, String, Sliding Window
- Course Schedule II (MEDIUM) — Depth-First Search, Breadth-First Search, Graph, Topological Sort
- Find All Anagrams in a String (MEDIUM) — Hash Table, String, Sliding Window
- Word Search II (HARD) — Array, String, Backtracking, Trie, Matrix
- String Transformation (HARD) — Math, String, Dynamic Programming, String Matching
- Step-By-Step Directions From a Binary Tree Node to Another (MEDIUM) — String, Tree, Depth-First Search, Binary Tree
- Calculate Amount Paid in Taxes (EASY) — Array, Simulation
- Maximum Number of Upgradable Servers (MEDIUM) — Array, Math, Binary Search
- Trapping Rain Water (HARD) — Array, Two Pointers, Dynamic Programming, Stack, Monotonic Stack
- Maximum Profit in Job Scheduling (HARD) — Array, Binary Search, Dynamic Programming, Sorting
- Painting the Walls (HARD) — Array, Dynamic Programming
- Minimum Array Length After Pair Removals (MEDIUM) — Array, Hash Table, Two Pointers, Binary Search, Greedy, Counting
- Number of Ways to Form a Target String Given a Dictionary (HARD) — Array, String, Dynamic Programming
- Find the Maximum Length of a Good Subsequence I (MEDIUM) — Array, Hash Table, Dynamic Programming
- Parallel Courses III (HARD) — Array, Dynamic Programming, Graph, Topological Sort
- Find the Maximum Length of a Good Subsequence II (HARD) — Array, Hash Table, Dynamic Programming
- Basic Calculator (HARD) — Math, String, Stack, Recursion
- Regular Expression Matching (HARD) — String, Dynamic Programming, Recursion
- Throne Inheritance (MEDIUM) — Hash Table, Tree, Depth-First Search, Design
- Count Vowel Substrings of a String (EASY) — Hash Table, String
- Boundary of Binary Tree (MEDIUM) — Tree, Depth-First Search, Binary Tree
- Design Hit Counter (MEDIUM) — Array, Binary Search, Design, Queue, Data Stream
- Reverse Nodes in k-Group (HARD) — Linked List, Recursion
- Time Based Key-Value Store (MEDIUM) — Hash Table, String, Binary Search, Design
- Two Sum (EASY) — Array, Hash Table
- Populating Next Right Pointers in Each Node II (MEDIUM) — Linked List, Tree, Depth-First Search, Breadth-First Search, Binary Tree
- Merge Two Sorted Lists (EASY) — Linked List, Recursion
- Max Area of Island (MEDIUM) — Array, Depth-First Search, Breadth-First Search, Union Find, Matrix
- Populating Next Right Pointers in Each Node (MEDIUM) — Linked List, Tree, Depth-First Search, Breadth-First Search, Binary Tree
- Copy List with Random Pointer (MEDIUM) — Hash Table, Linked List
- Encode and Decode Strings (MEDIUM) — Array, String, Design
- Task Scheduler (MEDIUM) — Array, Hash Table, Greedy, Sorting, Heap (Priority Queue), Counting
- Course Schedule (MEDIUM) — Depth-First Search, Breadth-First Search, Graph, Topological Sort
- Design HashMap (EASY) — Array, Hash Table, Linked List, Design, Hash Function
- Sliding Window Median (HARD) — Array, Hash Table, Sliding Window, Heap (Priority Queue)
- LRU Cache (MEDIUM) — Hash Table, Linked List, Design, Doubly-Linked List
- Merge k Sorted Lists (HARD) — Linked List, Divide and Conquer, Heap (Priority Queue), Merge Sort
- Min Stack (MEDIUM) — Stack, Design
- Basic Calculator II (MEDIUM) — Math, String, Stack
- Swap Nodes in Pairs (MEDIUM) — Linked List, Recursion
- Integer to English Words (HARD) — Math, String, Recursion
- Patching Array (HARD) — Array, Greedy
- Graph Valid Tree (MEDIUM) — Depth-First Search, Breadth-First Search, Union Find, Graph
- Count Subarrays With Fixed Bounds (HARD) — Array, Queue, Sliding Window, Monotonic Queue
- Random Pick with Weight (MEDIUM) — Array, Math, Binary Search, Prefix Sum, Randomized
- Implement Trie (Prefix Tree) (MEDIUM) — Hash Table, String, Design, Trie
- Longest Univalue Path (MEDIUM) — Tree, Depth-First Search, Binary Tree
- Maximize Distance to Closest Person (MEDIUM) — Array
S
Snowflake
90 questions tracked78 with solutions
Frequency scoreSorted highest → lowest frequency✓ Our Solution = we have a detailed walkthrough
Showing 90 of 90 questions
1HardDesign In-Memory File System
Hash TableStringDesignTrie+1
2Hash TableMathTwo Pointers
3Hash TableStringSliding Window
4Depth-First SearchBreadth-First SearchGraphTopological Sort
5Hash TableStringSliding Window
6ArrayStringBacktrackingTrie+1
7MathStringDynamic ProgrammingString Matching
8MediumStep-By-Step Directions From a Binary Tree Node to Another✓ Our Solution StringTreeDepth-First SearchBinary Tree
10MediumMaximum Number of Upgradable Servers
ArrayMathBinary Search
11ArrayTwo PointersDynamic ProgrammingStack+1
12ArrayBinary SearchDynamic ProgrammingSorting
14ArrayHash TableTwo PointersBinary Search+2
15HardNumber of Ways to Form a Target String Given a Dictionary✓ Our Solution ArrayStringDynamic Programming
16ArrayHash TableDynamic Programming
17ArrayDynamic ProgrammingGraphTopological Sort
18ArrayHash TableDynamic Programming
20StringDynamic ProgrammingRecursion
21Hash TableTreeDepth-First SearchDesign
23MediumBoundary of Binary Tree
TreeDepth-First SearchBinary Tree
24MediumDesign Hit Counter
ArrayBinary SearchDesignQueue+1
26Hash TableStringBinary SearchDesign
28Linked ListTreeDepth-First SearchBreadth-First Search+1
30ArrayDepth-First SearchBreadth-First SearchUnion Find+1
31Linked ListTreeDepth-First SearchBreadth-First Search+1
33MediumEncode and Decode Strings
ArrayStringDesign
34ArrayHash TableGreedySorting+2
35Depth-First SearchBreadth-First SearchGraphTopological Sort
36ArrayHash TableLinked ListDesign+1
37ArrayHash TableSliding WindowHeap (Priority Queue)
38Hash TableLinked ListDesignDoubly-Linked List
39Linked ListDivide and ConquerHeap (Priority Queue)Merge Sort
45MediumGraph Valid Tree
Depth-First SearchBreadth-First SearchUnion FindGraph
46ArrayQueueSliding WindowMonotonic Queue
47ArrayMathBinary SearchPrefix Sum+1
48Hash TableStringDesignTrie
49TreeDepth-First SearchBinary Tree
53MediumMaximum Profit From Trading Stocks
ArrayDynamic Programming
54Two PointersDesignSortingHeap (Priority Queue)+1
55ArrayStringDepth-First SearchTrie
56ArrayHash TableMathDesign+1
57HardMinimum Operations to Make Numbers Non-positive
ArrayBinary Search
59Dynamic ProgrammingDepth-First SearchBreadth-First SearchGraph+2
60StringStackGreedyMonotonic Stack
61TreeDepth-First SearchBinary Tree
62MediumWalls and Gates
ArrayBreadth-First SearchMatrix
65MediumParallel Courses
GraphTopological Sort
69ArrayHash TableDivide and ConquerSorting+4
70ArrayGreedySortingHeap (Priority Queue)
71ArrayBinary SearchDepth-First SearchBreadth-First Search+3
72StringDepth-First SearchDesignTrie
73ArrayDepth-First SearchBreadth-First SearchUnion Find+1
74ArrayDynamic ProgrammingGreedySorting
75ArrayTwo PointersStringBinary Search
76EasyValid Word Abbreviation
Two PointersString
77ArrayHash TableBinary SearchDesign
78ArrayTreeDepth-First SearchBreadth-First Search+1
79Hash TableStringSliding Window
80MediumConstruct Binary Tree from Preorder and Inorder Traversal✓ Our Solution ArrayHash TableDivide and ConquerTree+1
81ArrayHash TableStringDynamic Programming+2
82TreeDepth-First SearchBinary Tree
83StringBacktrackingBreadth-First Search
84ArrayStringDepth-First SearchBreadth-First Search+3
85ArrayDesignMatrixPrefix Sum
86MediumMeeting Rooms II
ArrayTwo PointersGreedySorting+2
87ArrayDynamic ProgrammingMatrix
88ArrayDepth-First SearchBreadth-First SearchUnion Find+1