Apple Interview Questions — 100 DSA Problems
100 problems with full solutions in Python, Java, C++, JavaScript, Go, Rust.
Most frequently asked Apple LeetCode questions for software engineering interviews.
- Two Sum (EASY) — Array, Hash Table
- Longest Substring Without Repeating Characters (MEDIUM) — Hash Table, String, Sliding Window
- Longest Common Prefix (EASY) — String, Trie
- Valid Parentheses (EASY) — String, Stack
- Median of Two Sorted Arrays (HARD) — Array, Binary Search, Divide and Conquer
- Merge Intervals (MEDIUM) — Array, Sorting
- Group Anagrams (MEDIUM) — Array, Hash Table, String, Sorting
- Merge Sorted Array (EASY) — Array, Two Pointers, Sorting
- Trapping Rain Water (HARD) — Array, Two Pointers, Dynamic Programming, Stack, Monotonic Stack
- Reverse Integer (MEDIUM) — Math
- Valid Sudoku (MEDIUM) — Array, Hash Table, Matrix
- Climbing Stairs (EASY) — Math, Dynamic Programming, Memoization
- Longest Palindromic Substring (MEDIUM) — Two Pointers, String, Dynamic Programming
- Palindrome Number (EASY) — Math
- Rotate Image (MEDIUM) — Array, Math, Matrix
- Spiral Matrix (MEDIUM) — Array, Matrix, Simulation
- Add Two Numbers (MEDIUM) — Linked List, Math, Recursion
- 3Sum (MEDIUM) — Array, Two Pointers, Sorting
- Roman to Integer (EASY) — Hash Table, Math, String
- Remove Duplicates from Sorted Array (EASY) — Array, Two Pointers
- Search in Rotated Sorted Array (MEDIUM) — Array, Binary Search
- Sqrt(x) (EASY) — Math, Binary Search
- Maximum Subarray (MEDIUM) — Array, Divide and Conquer, Dynamic Programming
- Merge Two Sorted Lists (EASY) — Linked List, Recursion
- Generate Parentheses (MEDIUM) — String, Dynamic Programming, Backtracking
- Merge k Sorted Lists (HARD) — Linked List, Divide and Conquer, Heap (Priority Queue), Merge Sort
- Container With Most Water (MEDIUM) — Array, Two Pointers, Greedy
- Find the Index of the First Occurrence in a String (EASY) — Two Pointers, String, String Matching
- Remove Element (EASY) — Array, Two Pointers
- Search Insert Position (EASY) — Array, Binary Search
- Letter Combinations of a Phone Number (MEDIUM) — Hash Table, String, Backtracking
- Regular Expression Matching (HARD) — String, Dynamic Programming, Recursion
- Remove Nth Node From End of List (MEDIUM) — Linked List, Two Pointers
- Insert Interval (MEDIUM) — Array
- Largest Rectangle in Histogram (HARD) — Array, Stack, Monotonic Stack
- Add Binary (EASY) — Math, String, Bit Manipulation, Simulation
- Permutations (MEDIUM) — Array, Backtracking
- Maximum Depth of Binary Tree (EASY) — Tree, Depth-First Search, Breadth-First Search, Binary Tree
- Binary Tree Level Order Traversal (MEDIUM) — Tree, Breadth-First Search, Binary Tree
- Find First and Last Position of Element in Sorted Array (MEDIUM) — Array, Binary Search
- Next Permutation (MEDIUM) — Array, Two Pointers
- Combination Sum (MEDIUM) — Array, Backtracking
- Sort Colors (MEDIUM) — Array, Two Pointers, Sorting
- Jump Game (MEDIUM) — Array, Dynamic Programming, Greedy
- 4Sum (MEDIUM) — Array, Two Pointers, Sorting
- Symmetric Tree (EASY) — Tree, Depth-First Search, Breadth-First Search, Binary Tree
- String to Integer (atoi) (MEDIUM) — String
- Validate Binary Search Tree (MEDIUM) — Tree, Depth-First Search, Binary Search Tree, Binary Tree
- First Missing Positive (HARD) — Array, Hash Table
- Pow(x, n) (MEDIUM) — Math, Recursion
A
Apple
100 questions tracked100 with solutions
Frequency scoreSorted highest → lowest frequency✓ Our Solution = we have a detailed walkthrough
Showing 100 of 100 questions
2Hash TableStringSliding Window
5ArrayBinary SearchDivide and Conquer
7ArrayHash TableStringSorting
9ArrayTwo PointersDynamic ProgrammingStack+1
12MathDynamic ProgrammingMemoization
13Two PointersStringDynamic Programming
23ArrayDivide and ConquerDynamic Programming
25StringDynamic ProgrammingBacktracking
26Linked ListDivide and ConquerHeap (Priority Queue)Merge Sort
28Two PointersStringString Matching
31Hash TableStringBacktracking
32StringDynamic ProgrammingRecursion
35ArrayStackMonotonic Stack
36MathStringBit ManipulationSimulation
38TreeDepth-First SearchBreadth-First SearchBinary Tree
39TreeBreadth-First SearchBinary Tree
40MediumFind First and Last Position of Element in Sorted Array✓ Our Solution ArrayBinary Search
44ArrayDynamic ProgrammingGreedy
46TreeDepth-First SearchBreadth-First SearchBinary Tree
48TreeDepth-First SearchBinary Search TreeBinary Tree
52StringDynamic Programming
53ArrayDynamic ProgrammingGreedy
54ArrayStringBacktrackingDepth-First Search+1
58StackTreeDepth-First SearchBinary Tree
59StringDynamic ProgrammingGreedyRecursion
60TreeDepth-First SearchBinary Tree
68ArrayBacktrackingBit Manipulation
69Hash TableStringSliding Window
71StringDynamic Programming
72ArrayDynamic ProgrammingMatrix
77ArrayDivide and ConquerTreeBinary Search Tree+1
79StringDynamic Programming
80ArrayHash TableBacktrackingMatrix
81TreeDepth-First SearchBreadth-First SearchBinary Tree
85Dynamic ProgrammingBacktrackingTreeBinary Search Tree+1
86ArrayDynamic ProgrammingStackMatrix+1
87MediumConstruct Binary Tree from Preorder and Inorder Traversal✓ Our Solution ArrayHash TableDivide and ConquerTree+1
91MathDynamic ProgrammingCombinatorics
93Hash TableStringSliding Window
96ArrayDynamic ProgrammingMatrix
97TreeDepth-First SearchBinary Search TreeBinary Tree
98MathDynamic ProgrammingTreeBinary Search Tree+1
99ArrayBacktrackingBit Manipulation
100Linked ListStackTreeDepth-First Search+1