J.P. Morgan Interview Questions — 79 DSA Problems
76 problems with full solutions in Python, Java, C++, JavaScript, Go, Rust.
Most frequently asked J.P. Morgan LeetCode questions for software engineering interviews.
- Sort Integers by The Number of 1 Bits (EASY) — Array, Bit Manipulation, Sorting, Counting
- Reaching Points (HARD) — Math
- Least Number of Unique Integers after K Removals (MEDIUM) — Array, Hash Table, Greedy, Sorting, Counting
- Minimum Suffix Flips (MEDIUM) — String, Greedy
- Remove Colored Pieces if Both Neighbors are the Same Color (MEDIUM) — Math, String, Greedy, Game Theory
- Break a Palindrome (MEDIUM) — String, Greedy
- Minimum Absolute Difference (EASY) — Array, Sorting
- Next Permutation (MEDIUM) — Array, Two Pointers
- Check Whether Two Strings are Almost Equivalent (EASY) — Hash Table, String, Counting
- Group Anagrams (MEDIUM) — Array, Hash Table, String, Sorting
- Best Time to Buy and Sell Stock (EASY) — Array, Dynamic Programming
- Determine Color of a Chessboard Square (EASY) — Math, String
- Minimum Swaps to Make Strings Equal (MEDIUM) — Math, String, Greedy
- Numbers With Repeated Digits (HARD) — Math, Dynamic Programming
- Merge Intervals (MEDIUM) — Array, Sorting
- Suspicious Bank Accounts (MEDIUM) — Database
- Button with Longest Push Time (EASY) — Array
- Display Table of Food Orders in a Restaurant (MEDIUM) — Array, Hash Table, String, Sorting, Ordered Set
- Check if Number Has Equal Digit Count and Digit Value (EASY) — Hash Table, String, Counting
- Maximum Number of Points From Grid Queries (HARD) — Array, Two Pointers, Breadth-First Search, Union Find, Sorting, Heap (Priority Queue), Matrix
- Valid Parentheses (EASY) — String, Stack
- Lexicographically Smallest String After Applying Operations (MEDIUM) — String, Depth-First Search, Breadth-First Search, Enumeration
- Rotate Image (MEDIUM) — Array, Math, Matrix
- Lexicographically Smallest String After a Swap (EASY) — String, Greedy
- Reverse Odd Levels of Binary Tree (MEDIUM) — Tree, Depth-First Search, Breadth-First Search, Binary Tree
- Find Resultant Array After Removing Anagrams (EASY) — Array, Hash Table, String, Sorting
- Longest Palindromic Substring (MEDIUM) — Two Pointers, String, Dynamic Programming
- Count Numbers with Unique Digits (MEDIUM) — Math, Dynamic Programming, Backtracking
- Happy Number (EASY) — Hash Table, Math, Two Pointers
- Longest Substring Without Repeating Characters (MEDIUM) — Hash Table, String, Sliding Window
- Climbing Stairs (EASY) — Math, Dynamic Programming, Memoization
- Maximum Product of Two Elements in an Array (EASY) — Array, Sorting, Heap (Priority Queue)
- Minimum Operations to Make All Array Elements Equal (MEDIUM) — Array, Binary Search, Sorting, Prefix Sum
- Subarray Sum Equals K (MEDIUM) — Array, Hash Table, Prefix Sum
- Maximum Units on a Truck (EASY) — Array, Greedy, Sorting
- Two Sum (EASY) — Array, Hash Table
- Fizz Buzz (EASY) — Math, String, Simulation
- Intersection of Two Arrays (EASY) — Array, Hash Table, Two Pointers, Binary Search, Sorting
- Generate Parentheses (MEDIUM) — String, Dynamic Programming, Backtracking
- Maximum Subarray (MEDIUM) — Array, Divide and Conquer, Dynamic Programming
- Best Time to Buy and Sell Stock II (MEDIUM) — Array, Dynamic Programming, Greedy
- Rearrange Array to Maximize Prefix Score (MEDIUM) — Array, Greedy, Sorting, Prefix Sum
- Coin Change (MEDIUM) — Array, Dynamic Programming, Breadth-First Search
- Non-overlapping Intervals (MEDIUM) — Array, Dynamic Programming, Greedy, Sorting
- Fibonacci Number (EASY) — Math, Dynamic Programming, Recursion, Memoization
- Minimum Cost to Connect Sticks (MEDIUM) — Array, Greedy, Heap (Priority Queue)
- Pascal's Triangle (EASY) — Array, Dynamic Programming
- Minimum Cost to Make Array Equal (HARD) — Array, Binary Search, Greedy, Sorting, Prefix Sum
- LRU Cache (MEDIUM) — Hash Table, Linked List, Design, Doubly-Linked List
- Daily Temperatures (MEDIUM) — Array, Stack, Monotonic Stack
JM
J.P. Morgan
79 questions tracked76 with solutions
Frequency scoreSorted highest → lowest frequency✓ Our Solution = we have a detailed walkthrough
Showing 79 of 79 questions
1ArrayBit ManipulationSortingCounting
3ArrayHash TableGreedySorting+1
5MediumRemove Colored Pieces if Both Neighbors are the Same Color✓ Our Solution MathStringGreedyGame Theory
10ArrayHash TableStringSorting
16MediumSuspicious Bank Accounts
Database
18ArrayHash TableStringSorting+1
19EasyCheck if Number Has Equal Digit Count and Digit Value✓ Our Solution Hash TableStringCounting
20ArrayTwo PointersBreadth-First SearchUnion Find+3
22MediumLexicographically Smallest String After Applying Operations✓ Our Solution StringDepth-First SearchBreadth-First SearchEnumeration
25TreeDepth-First SearchBreadth-First SearchBinary Tree
26ArrayHash TableStringSorting
27Two PointersStringDynamic Programming
28MathDynamic ProgrammingBacktracking
29Hash TableMathTwo Pointers
30Hash TableStringSliding Window
31MathDynamic ProgrammingMemoization
32ArraySortingHeap (Priority Queue)
33MediumMinimum Operations to Make All Array Elements Equal✓ Our Solution ArrayBinary SearchSortingPrefix Sum
34ArrayHash TablePrefix Sum
38ArrayHash TableTwo PointersBinary Search+1
39StringDynamic ProgrammingBacktracking
40ArrayDivide and ConquerDynamic Programming
41ArrayDynamic ProgrammingGreedy
42ArrayGreedySortingPrefix Sum
43ArrayDynamic ProgrammingBreadth-First Search
44ArrayDynamic ProgrammingGreedySorting
45MathDynamic ProgrammingRecursionMemoization
46MediumMinimum Cost to Connect Sticks
ArrayGreedyHeap (Priority Queue)
48ArrayBinary SearchGreedySorting+1
49Hash TableLinked ListDesignDoubly-Linked List
50ArrayStackMonotonic Stack
51TreeDepth-First SearchBreadth-First SearchBinary Tree
53ArrayTwo PointersBinary Search
56Hash TableStringBacktracking
58ArrayDivide and ConquerSortingHeap (Priority Queue)+1
59ArrayHash TableDivide and ConquerSorting+4
63ArrayMathDesignRandomized
65MediumCount Strictly Increasing Subarrays
ArrayMathDynamic Programming
66ArrayHash TableStringBreadth-First Search
68ArrayDynamic ProgrammingMatrix
70MediumMinimum Insertions to Balance a Parentheses String✓ Our Solution StringStackGreedy
71ArrayStringBinary SearchTrie+2
72ArrayTwo PointersBinary SearchBit Manipulation
75ArrayStackMonotonic Stack
76StringDynamic Programming