Uber Interview Questions — 100 DSA Problems
100 problems with full solutions in Python, Java, C++, JavaScript, Go, Rust.
Most frequently asked Uber LeetCode questions for software engineering interviews.
- Two Sum (EASY) — Array, Hash Table
- Best Time to Buy and Sell Stock (EASY) — Array, Dynamic Programming
- Word Search (MEDIUM) — Array, String, Backtracking, Depth-First Search, Matrix
- Text Justification (HARD) — Array, String, Simulation
- Spiral Matrix (MEDIUM) — Array, Matrix, Simulation
- Valid Sudoku (MEDIUM) — Array, Hash Table, Matrix
- Group Anagrams (MEDIUM) — Array, Hash Table, String, Sorting
- Roman to Integer (EASY) — Hash Table, Math, String
- Letter Combinations of a Phone Number (MEDIUM) — Hash Table, String, Backtracking
- Generate Parentheses (MEDIUM) — String, Dynamic Programming, Backtracking
- Minimum Window Substring (HARD) — Hash Table, String, Sliding Window
- Longest Common Prefix (EASY) — String, Trie
- Add Two Numbers (MEDIUM) — Linked List, Math, Recursion
- Merge Sorted Array (EASY) — Array, Two Pointers, Sorting
- Word Break (MEDIUM) — Array, Hash Table, String, Dynamic Programming, Trie, Memoization
- Trapping Rain Water (HARD) — Array, Two Pointers, Dynamic Programming, Stack, Monotonic Stack
- Rotate Image (MEDIUM) — Array, Math, Matrix
- Search in Rotated Sorted Array (MEDIUM) — Array, Binary Search
- Valid Palindrome (EASY) — Two Pointers, String
- Remove Element (EASY) — Array, Two Pointers
- 3Sum (MEDIUM) — Array, Two Pointers, Sorting
- Decode Ways (MEDIUM) — String, Dynamic Programming
- Next Permutation (MEDIUM) — Array, Two Pointers
- Sqrt(x) (EASY) — Math, Binary Search
- Median of Two Sorted Arrays (HARD) — Array, Binary Search, Divide and Conquer
- Valid Parentheses (EASY) — String, Stack
- Largest Rectangle in Histogram (HARD) — Array, Stack, Monotonic Stack
- Maximum Depth of Binary Tree (EASY) — Tree, Depth-First Search, Breadth-First Search, Binary Tree
- Merge k Sorted Lists (HARD) — Linked List, Divide and Conquer, Heap (Priority Queue), Merge Sort
- Regular Expression Matching (HARD) — String, Dynamic Programming, Recursion
- Longest Consecutive Sequence (MEDIUM) — Array, Hash Table, Union Find
- Merge Two Sorted Lists (EASY) — Linked List, Recursion
- Subsets (MEDIUM) — Array, Backtracking, Bit Manipulation
- Word Break II (HARD) — Array, Hash Table, String, Dynamic Programming, Backtracking, Trie, Memoization
- Maximum Subarray (MEDIUM) — Array, Divide and Conquer, Dynamic Programming
- Reverse Integer (MEDIUM) — Math
- Sudoku Solver (HARD) — Array, Hash Table, Backtracking, Matrix
- Merge Intervals (MEDIUM) — Array, Sorting
- Remove Duplicates from Sorted Array (EASY) — Array, Two Pointers
- Longest Palindromic Substring (MEDIUM) — Two Pointers, String, Dynamic Programming
- Combination Sum (MEDIUM) — Array, Backtracking
- Swap Nodes in Pairs (MEDIUM) — Linked List, Recursion
- Find First and Last Position of Element in Sorted Array (MEDIUM) — Array, Binary Search
- Find the Index of the First Occurrence in a String (EASY) — Two Pointers, String, String Matching
- String to Integer (atoi) (MEDIUM) — String
- Container With Most Water (MEDIUM) — Array, Two Pointers, Greedy
- Longest Substring Without Repeating Characters (MEDIUM) — Hash Table, String, Sliding Window
- Jump Game II (MEDIUM) — Array, Dynamic Programming, Greedy
- Copy List with Random Pointer (MEDIUM) — Hash Table, Linked List
- Clone Graph (MEDIUM) — Hash Table, Depth-First Search, Breadth-First Search, Graph
U
Uber
100 questions tracked100 with solutions
Frequency scoreSorted highest → lowest frequency✓ Our Solution = we have a detailed walkthrough
Showing 100 of 100 questions
3ArrayStringBacktrackingDepth-First Search+1
7ArrayHash TableStringSorting
9Hash TableStringBacktracking
10StringDynamic ProgrammingBacktracking
11Hash TableStringSliding Window
15ArrayHash TableStringDynamic Programming+2
16ArrayTwo PointersDynamic ProgrammingStack+1
22StringDynamic Programming
25ArrayBinary SearchDivide and Conquer
27ArrayStackMonotonic Stack
28TreeDepth-First SearchBreadth-First SearchBinary Tree
29Linked ListDivide and ConquerHeap (Priority Queue)Merge Sort
30StringDynamic ProgrammingRecursion
31ArrayHash TableUnion Find
33ArrayBacktrackingBit Manipulation
34ArrayHash TableStringDynamic Programming+3
35ArrayDivide and ConquerDynamic Programming
37ArrayHash TableBacktrackingMatrix
40Two PointersStringDynamic Programming
43MediumFind First and Last Position of Element in Sorted Array✓ Our Solution ArrayBinary Search
44Two PointersStringString Matching
47Hash TableStringSliding Window
48ArrayDynamic ProgrammingGreedy
50Hash TableDepth-First SearchBreadth-First SearchGraph
51MathDynamic ProgrammingMemoization
52ArrayDynamic ProgrammingGreedy
55Hash TableStringBreadth-First Search
59StringDynamic ProgrammingStack
62ArrayDynamic ProgrammingGreedy
63ArrayDynamic ProgrammingMatrix
64TreeBreadth-First SearchBinary Tree
68Hash TableLinked ListTwo Pointers
75TreeDepth-First SearchBinary Search TreeBinary Tree
76Dynamic ProgrammingTreeDepth-First SearchBinary Tree
77MathStringBit ManipulationSimulation
78Linked ListStackTreeDepth-First Search+1
80StringDynamic ProgrammingBacktracking
81MathDynamic ProgrammingCombinatorics
83StringDynamic Programming
84TreeDepth-First SearchBreadth-First SearchBinary Tree
85StackTreeDepth-First SearchBinary Tree
86StringDynamic Programming
88Linked ListDivide and ConquerTreeBinary Search Tree+1
92ArrayDynamic ProgrammingMatrix
95Dynamic ProgrammingBacktrackingTreeBinary Search Tree+1
96TreeDepth-First SearchBinary Tree
99ArrayDynamic ProgrammingStackMatrix+1
100StringDynamic ProgrammingGreedyRecursion