Skip to content

marmikpatel19/Technical-Interview-Prep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Technical Interview Prep

This repository is a collection of coding problems that I have solved to prepare for technical (SWE) interviews. Questions are completed in Java.

Topics (from Neetcode.io and Leetcode): Arrays & Hashing, Two Pointers, Sliding Window, Stack, Binary Search, Linked List, Trees, Tries, Heap/Priority Queue, Backtracking, Graphs, 1-D Dynamic Programming (DP), 2-D Dynamic Programming (DP), Greedy, Intervals, Math & Geometry, Bit Manipulation, Matrix, Sorting, and Prefix Sum.

LeetCode

# Name Difficulty Solution Time Topic
1 Two Sum Easy Java 10 mins
1(A2) Two Sum Easy Java 11 mins Arrays & Hashing
1(A3) Two Sum Easy Java -- Arrays & Hashing
1(A4) Two Sum Easy Java DNF Arrays & Hashing
2 Add Two Numbers Medium Java 33 mins
2(A2) Add Two Numbers Medium Java 45 mins Linked List
3 Longest Substring Without Repeating Characters Medium Java 47 mins
3(A2) Longest Substring Without Repeating Characters Medium Java 30 mins, one hint Sliding Window
5 Longest Palindromic Substring Medium Java 73 mins 1-D DP
7 Reverse Integer Medium Java 11 mins Bit Manipulation
9 Palindrome Number Easy Java 4 mins
11 Container With Most Water Medium Java 50 mins
11 (A2) Container With Most Water Medium Java N/A
12 Integer to Roman Medium Java 40 mins Math & Geometry
13 Roman to Integer Easy Java 18 mins
13 (A2) Roman to Integer Easy Java 12 mins Math & Geometry
14 Longest Common Prefix Easy Java DNF
15 3Sum Medium Java DNF
17 Letter Combinations of a Phone Number Medium Java 26 mins Backtracking
19 Remove Nth Node From End of List Medium Java 24 mins
20 Valid Parentheses Easy Java 19 mins
21 Merge Two Sorted Lists Easy Java DNF
22 Generate Parentheses Medium Java 40 mins
22(A2) Generate Parentheses Medium Java 17 mins Backtracking
23 Merge k Sorted Lists Hard Java 46 mins Linked List
26 Remove Duplicates from Sorted Array Easy Java 10 mins Arrays & Hashing
31 Next Permutation Medium Java DNF Two Pointer
33 Search in Rotated Sorted Array Medium Java DNF
35 Search Insert Position Easy Java 6 min
36 Valid Sudoku Medium Java 37 min Arrays & Hashing
39 Combination Sum Medium Java DNF
40 Combination Sum II Medium Java DNF
40 (A2) Combination Sum II Medium Java DNF Backtracking
46 Permutations Medium Java 15 mins
48 Rotate Image Medium Java 1h 17mins, one hint Matrix, Math & Geometry
49 Group Anagrams Medium Java 31 mins Arrays & Hashing
49(A2) Group Anagrams Medium Java 16 mins Arrays & Hashing
49(A3) Group Anagrams Medium Java 18 mins Arrays & Hashing
50 -- DP w Memo Pow(x, n) Medium Java DNF Math & Geometry
50 -- Binary Exponentiation Pow(x, n) Medium Java -- Math & Geometry
54 Spiral Matrix Medium Java 44 mins
55 Jump Game Medium Java DNF Greedy
56 Merge Intervals Medium Java 28 mins Intervals
61 Rotate List Medium Java 24 mins Linked List
66 Plus One Easy Java 10 mins
70 Climbing Stairs Easy Java DNF
70(A2) Climbing Stairs Easy Java DNF 1-D DP
71 Simplify Path Medium Java 21 mins Stack
72 Edit Distance Medium Java DNF 2-D DP
73 Set Matrix Zeroes Medium Java 20 mins Matrix, Math & Geometry
74 Search a 2D Matrix Medium Java DNF Binary Search
76 Minimum Window Substring Hard Java 120 mins Sliding Window
78 Subsets Medium Java DNF
79 Word Search Medium Java DNF
79(A2) Word Search Medium Java 1h 20mins Backtracking
88 Merge Sorted Array Easy Java 9 mins
88(A2) Merge Sorted Array Easy Java DNF Two-pointer
90 Subsets II Medium Java 30 mins, hint
91 Decode Ways Medium Java DNF 1-D DP
94 Binary Tree Inorder Traversal Easy Java 6 minutes Trees
97 Interleaving String Medium Java DNF 2-D DP
98 Validate Binary Search Tree Medium Java DNF Trees
98(A2) Validate Binary Search Tree Medium Java 18 mins Trees
100 Same Tree Easy Java 26 mins
101 Symmetric Tree Easy Java 16 mins
102 Binary Tree Level Order Traversal Medium Java 37 mins Trees
104 Maximum Depth of Binary Tree Easy Java 8 mins
105 Construct Binary Tree from Preorder and Inorder Traversal Medium Java DNF Trees
121 Best Time to Buy and Sell Stock Easy Java DNF
121(A2) Best Time to Buy and Sell Stock Easy Java DNF Sliding Window
121(A3) Best Time to Buy and Sell Stock Easy Java 15 mins Sliding Window
125 Valid Palindrome Easy Java 34 mins Two Pointers
125 Valid Palindrome Easy Java 21 mins Two Pointers
128 Longest Consecutive Sequence Medium Java DNF Arrays & Hashing
129 Sum Root to Leaf Numbers Medium Java 15 mins Trees
131 Palindrome Partitioning Medium Java DNF Backtracking
133 Clone Graph Medium Java DNF Graphs
134 Gas Station Medium Java DNF
138 Copy List with Random Pointer Medium Java 38 Mins, one hint
139 Word Break Medium Java DNF 1-D DP
141 Linked List Cycle Easy Java 10 mins Linked List
143 Reorder List Medium Java DNF Linked List
146 LRU Cache Medium Java DNF Linked List
150 Evaluate Reverse Polish Notation Medium Java 16 mins
152 Maximum Product Subarray Medium Java DNF 1-D DP
153 Find Minimum in Rotated Sorted Array Medium Java DNF Binary Search
155 Min Stack Medium Java 31 mins, one hint
162 Find Peak Element Medium Java DNF Binary Search
169 Majority Element Easy Java 9 mins
198 House Robber Medium Java DNF
198(A2) House Robber Medium Java 16 minutes 1-D DP
200 Number of Islands Medium Java 21 mins Graphs
200(A2) Number of Islands Medium Java 9 mins Graphs
200(A3) Number of Islands Medium Java 21 mins Graphs
202 Happy Number Easy Java 5 mins Math and Geometry
206 Reverse Linked List Easy Java DNF
206(A2) Reverse Linked List Easy Java 30 mins Linked List
207 Course Schedule Medium Java DNF Graphs
213 House Robber II Medium Java DNF 1-D DP
215 -- Heap Kth Largest Element in an Array Medium Java DNF Heap/Priority Queue
215(A2) -- QuickSelect Kth Largest Element in an Array Medium Java -- Heap/Priority Queue
217 Contains Duplicate Easy Java 4 min
226 Invert Binary Tree Easy Java 10 mins
227 Basic Calculator II Medium Java DNF Stack
227(A2) Basic Calculator II Medium Java DNF Stack
230 Kth Smallest Element in a BST Medium Java 60 mins Trees
232 Implement Queue using Stacks Easy Java DNF Stack
235 Lowest Common Ancestor of a Binary Search Tree Medium Java 38 mins
236 Lowest Common Ancestor of a Binary Tree Medium Java DNF Trees
238 Product of Array Except Self Medium Java DNF Arrays & Hashing
242 Valid Anagram Easy Java 13 mins
242(A2) Valid Anagram Easy Java
252 Meeting Rooms I Easy Java 10 mins Intervals
253 Meeting Rooms II Medium Java DNF Intervals, Two Pointers
261 Graph Valid Tree Medium Java DNF Graphs
268 Missing Number Easy Java 5 mins
269 Alien Dictionary Hard Java DNF Graphs
283 Move Zeroes Easy Java 14 mins Two Pointers
297 Serialize and Deserialize Binary Tree Hard Java DNF Trees
300 Longest Increasing Subsequence Medium Java DNF 1-D DP
300 (A2) Longest Increasing Subsequence Medium Java DNF 1-D DP
300 (A3) Longest Increasing Subsequence Medium Java 35 mins, one hint 1-D DP
309 Best Time to Buy and Sell Stock with Cooldown Medium Java DNF 2-D DP
314 Binary Tree Vertical Order Traversal Medium Java 34 mins Trees
322 Coin Change Medium Java DNF 1-D DP
323 Number of Connected Components in an Undirected Graph Medium Java DNF Graphs
337 House Robber III Medium Java 60 mins, one hint 1-D DP
338 Counting Bits Easy Java 13 mins 1-D DP, Bit Manipulation
339 Nested List Weight Sum Medium Java 15 mins BFS, DFS
347 Top K Frequent Elements Medium Java DNF
347(A2) -- Heap Top K Frequent Elements Medium Java 27 mins Heap/Priority Queue
347(A2) -- QuickSelect Top K Frequent Elements Medium Java -- Heap/Priority Queue
371 Sum of Two Integers Medium Java DNF Bit Manipulation
380 Insert Delete GetRandom O(1) Medium Java DNF Arrays & Hashing
408 Valid Word Abbreviation Easy Java 21 mins Two Pointers , String Manipulation
424 Longest Repeating Character Replacement Medium Java DNF Sliding Window
426 Convert Binary Search Tree to Sorted Doubly Linked List Medium Java DNF Trees
435 Non-overlapping Intervals Medium Java DNF Greedy, Intervals
498 Diagonal Traverse Medium Java DNF Matrix
509 Fibonacci Number Easy Java 2 mins DP
528 Random Pick with Weight Medium Java DNF Binary Search, Prefix Sum
543 Diameter of Binary Tree Easy Java DNF
543(A2) Diameter of Binary Tree Easy Java 25 mins, one hint Trees
560 Subarray Sum Equals K Medium Java DNF Prefix Sum
572 Subtree of Another Tree Easy Java 34 mins
628 Maximum Product of Three Numbers Easy Java 7 mins Arrays & Hashing
670 Maximum Swap Medium Java DNF Math & Geometry
680 Valid Palindrome II Easy Java 20 mins Two Pointers
704 Binary Search Easy Java 27 mins Binary Search
746 Min Cost Climbing Stairs Easy Java 19 mins 1-D DP
791 Custom Sort String Medium Java 22 mins Arrays & Hashing
791(A2) Custom Sort String Medium Java -- Arrays & Hashing
853 Car Fleet Medium Java DNF Stack
875 Koko Eating Bananas Medium Java DNF Binary search
938 Range Sum of BST Easy Java 18 mins Trees
938(A2) Range Sum of BST Easy Java -- Trees
994 Rotting Oranges Medium Java -- Graphs (BFS)
1004 Max Consecutive Ones III Medium Java DNF Sliding Window
1091 Shortest Path in Binary Matrix Medium Java DNF Matrix
1143 Longest Common Subsequence Medium Java DNF 2-D DP
1249 Minimum Remove to Make Valid Parentheses Medium Java 40 mins String Manipulation, Stack
1405 Longest Happy String Medium Java DNF Greedy
1448 Count Good Nodes in Binary Tree Medium Java 12 mins
1570 -- HashMap Dot Product of Two Sparse Vectors Medium Java 13 mins Arrays & Hashing, Two Pointers
1570(A2) -- Tuple Dot Product of Two Sparse Vectors Medium Java -- Arrays & Hashing, Two Pointers
1644 Lowest Common Ancestor of a Binary Tree II Medium Java 19 mins Trees
1650 Lowest Common Ancestor of a Binary Tree III Medium Java 14 mins Trees
1650(A2) Lowest Common Ancestor of a Binary Tree III Medium Java -- Trees
1762 Buildings With an Ocean View Medium Java 15 mins --
1909 Remove One Element to Make the Array Strictly Increasing Easy Java DNF Arrays & Hashing
2043 Simple Bank System Medium Java 20 mins Misc. (not DS&A)

CodeSignal Arcade Practice questions.

CodeSignal Arcade

Section Number Name Difficulty Solution Time Topic
Intro 9 MatrixElementSum Easy Java 10 mins Matrix

CTCI

Cracking the Coding Interview 6th Edition

# Name Solution Time
0.1 Big-O Example 1 Java
0.2 Big-O Example 2 Java
0.3 Big-O Example 3 Java
0.4 Big-O Example 4 Java
0.5 Big-O Example 5 Java
0.6 Big-O Example 6 Java
0.9 Big-O Example 9 Java
0.10 Big-O Example 10 Java
0.11 Big-O Example 11 Java
0.12 Big-O Example 12 Java
0.13 Big-O Example 13 Java
0.14 Big-O Example 14 Java
0.15 Big-O Example 15 Java
0.16 Big-O Example 16 Java
0.1AP Big-O Additional Problem 1 Java
0.2AP Big-O Additional Problem 2 Java
0.3AP Big-O Additional Problem 3 Java
0.4AP Big-O Additional Problem 4 Java
0.5AP Big-O Additional Problem 5 Java
0.6AP Big-O Additional Problem 6 Java
0.9AP Big-O Additional Problem 9 Java
0.10AP Big-O Additional Problem 10 Java
0.11AP Big-O Additional Problem 11 Java
0.12AP Big-O Additional Problem 12 Java
1.1 Is Unique Java
1.1 (A2) Is Unique Java 16 mins
1.2 Check Permutation Java 35 mins
1.2 (A2) Check Permutation Java 18 mins
1.3 URLify Java DNF
1.3 (A2) URLify Java 33 mins
1.4 Palindrome Permutation Java 87 mins, one hint
1.4 (A2) Palindrome Permutation Java 50 mins
1.5 One Away Java 35 mins
1.5 (A2) One Away Java 18 mins
1.6 String Compression Java 17 mins
1.7 Rotate Matrix Java DNF
1.8 Zero Matrix Java 35 mins
1.9 String Rotation Java 25 mins, one hint

Misc.

Misc. questions that I've done

Name Difficulty Solution Time Topic
Wordle Java 20 mins Arrays & Hashing
Cat Sweater Robber Java 9 mins Binary Search
Recommended Friend Medium Java -- Graphs
Conistent Logs Hard Java -- Sliding Window, Arrays & Hashing

About

A collection of LeetCode and CTCI questions that I have solved to prepare for technical (SWE) interviews.

Topics

Resources

Stars

Watchers

Forks

Languages