Goldman Sachs Interview Questions — 100 DSA Problems
99 problems with full solutions in Python, Java, C++, JavaScript, Go, Rust.
Most frequently asked Goldman Sachs LeetCode questions for software engineering interviews.
- Trapping Rain Water (HARD) — Array, Two Pointers, Dynamic Programming, Stack, Monotonic Stack
- Median of Two Sorted Arrays (HARD) — Array, Binary Search, Divide and Conquer
- First Unique Character in a String (EASY) — Hash Table, String, Queue, Counting
- Fraction to Recurring Decimal (MEDIUM) — Hash Table, Math, String
- Best Time to Buy and Sell Stock (EASY) — Array, Dynamic Programming
- Number of Islands (MEDIUM) — Array, Depth-First Search, Breadth-First Search, Union Find, Matrix
- Minimum Path Sum (MEDIUM) — Array, Dynamic Programming, Matrix
- String Compression (MEDIUM) — Two Pointers, String
- Two Sum (EASY) — Array, Hash Table
- LRU Cache (MEDIUM) — Hash Table, Linked List, Design, Doubly-Linked List
- Group Anagrams (MEDIUM) — Array, Hash Table, String, Sorting
- Find Minimum in Rotated Sorted Array (MEDIUM) — Array, Binary Search
- Container With Most Water (MEDIUM) — Array, Two Pointers, Greedy
- Decode Ways (MEDIUM) — String, Dynamic Programming
- Longest Substring Without Repeating Characters (MEDIUM) — Hash Table, String, Sliding Window
- Search in Rotated Sorted Array (MEDIUM) — Array, Binary Search
- Minimize the Maximum of Two Arrays (MEDIUM) — Math, Binary Search, Number Theory
- Best Time to Buy and Sell Stock II (MEDIUM) — Array, Dynamic Programming, Greedy
- Kth Largest Element in an Array (MEDIUM) — Array, Divide and Conquer, Sorting, Heap (Priority Queue), Quickselect
- Valid Arrangement of Pairs (HARD) — Depth-First Search, Graph, Eulerian Circuit
- Merge Intervals (MEDIUM) — Array, Sorting
- Construct Smallest Number From DI String (MEDIUM) — String, Backtracking, Stack, Greedy
- Longest Palindromic Substring (MEDIUM) — Two Pointers, String, Dynamic Programming
- Power of Three (EASY) — Math, Recursion
- Longest Increasing Subsequence (MEDIUM) — Array, Binary Search, Dynamic Programming
- Maximum Subarray (MEDIUM) — Array, Divide and Conquer, Dynamic Programming
- Minimum Cost Homecoming of a Robot in a Grid (MEDIUM) — Array, Greedy
- Valid Parentheses (EASY) — String, Stack
- Jump Game (MEDIUM) — Array, Dynamic Programming, Greedy
- Count Palindromic Subsequences (HARD) — String, Dynamic Programming
- Range Product Queries of Powers (MEDIUM) — Array, Bit Manipulation, Prefix Sum
- Keep Multiplying Found Values by Two (EASY) — Array, Hash Table, Sorting, Simulation
- Count Number of Texts (MEDIUM) — Hash Table, Math, String, Dynamic Programming
- Find All Good Indices (MEDIUM) — Array, Dynamic Programming, Prefix Sum
- Sliding Window Maximum (HARD) — Array, Queue, Sliding Window, Heap (Priority Queue), Monotonic Queue
- Successful Pairs of Spells and Potions (MEDIUM) — Array, Two Pointers, Binary Search, Sorting
- Determine if Two Events Have Conflict (EASY) — Array, String
- Search a 2D Matrix (MEDIUM) — Array, Binary Search, Matrix
- String to Integer (atoi) (MEDIUM) — String
- Product of Array Except Self (MEDIUM) — Array, Prefix Sum
- Subarray Sum Equals K (MEDIUM) — Array, Hash Table, Prefix Sum
- House Robber (MEDIUM) — Array, Dynamic Programming
- Pow(x, n) (MEDIUM) — Math, Recursion
- Word Search (MEDIUM) — Array, String, Backtracking, Depth-First Search, Matrix
- Linked List Cycle (EASY) — Hash Table, Linked List, Two Pointers
- Next Permutation (MEDIUM) — Array, Two Pointers
- Pascal's Triangle (EASY) — Array, Dynamic Programming
- Find Peak Element (MEDIUM) — Array, Binary Search
- Climbing Stairs (EASY) — Math, Dynamic Programming, Memoization
- Sqrt(x) (EASY) — Math, Binary Search
GS
Goldman Sachs
100 questions tracked99 with solutions
Frequency scoreSorted highest → lowest frequency✓ Our Solution = we have a detailed walkthrough
Showing 100 of 100 questions
1ArrayTwo PointersDynamic ProgrammingStack+1
2ArrayBinary SearchDivide and Conquer
3Hash TableStringQueueCounting
6ArrayDepth-First SearchBreadth-First SearchUnion Find+1
7ArrayDynamic ProgrammingMatrix
10Hash TableLinked ListDesignDoubly-Linked List
11ArrayHash TableStringSorting
14StringDynamic Programming
15Hash TableStringSliding Window
17MathBinary SearchNumber Theory
18ArrayDynamic ProgrammingGreedy
19ArrayDivide and ConquerSortingHeap (Priority Queue)+1
20Depth-First SearchGraphEulerian Circuit
22StringBacktrackingStackGreedy
23Two PointersStringDynamic Programming
25ArrayBinary SearchDynamic Programming
26ArrayDivide and ConquerDynamic Programming
29ArrayDynamic ProgrammingGreedy
30StringDynamic Programming
31ArrayBit ManipulationPrefix Sum
32ArrayHash TableSortingSimulation
33Hash TableMathStringDynamic Programming
34ArrayDynamic ProgrammingPrefix Sum
35ArrayQueueSliding WindowHeap (Priority Queue)+1
36ArrayTwo PointersBinary SearchSorting
41ArrayHash TablePrefix Sum
44ArrayStringBacktrackingDepth-First Search+1
45Hash TableLinked ListTwo Pointers
49MathDynamic ProgrammingMemoization
51ArrayHash TableMathBinary Search+2
52ArrayBinary SearchSliding WindowPrefix Sum
53ArrayHash TableMathDesign+1
54ArrayHash TableDivide and ConquerSorting+4
58Two PointersDesignSortingHeap (Priority Queue)+1
59ArrayDynamic ProgrammingMatrix
61ArrayHash TableBit ManipulationTrie
62ArrayHash TableStackMonotonic Stack
66Hash TableStringBacktracking
69ArrayDivide and ConquerBinary Indexed TreeSegment Tree+3
80Hash TableTreeDepth-First SearchBreadth-First Search+1
83MediumLongest Substring with At Most K Distinct Characters
Hash TableStringSliding Window
84Hash TableTwo PointersStringSliding Window
85Linked ListTwo PointersStackRecursion
86Hash TableLinked ListTwo Pointers
87ArrayTwo PointersBinary SearchBit Manipulation
92ArrayDynamic ProgrammingGreedy
94ArrayHash TableSliding Window
95MathDynamic ProgrammingCombinatorics
97ArrayStringDivide and ConquerSorting+3
98StringStackGreedyMonotonic Stack
100StringDynamic Programming