Skip to content

vicch/leetcode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Problems

String

# LeetCode Link Difficulty Solution Data Structures Patterns / Approaches B75 CTCI EPI TIQ CCH
* 0005 Longest Palindromic Substring Medium Python String DP ✔️ ✔️

Linked List

# LeetCode Link Difficulty Solution Data Structures Patterns / Approaches B75 CTCI EPI TIQ CCH
0002 Add Two Numbers Medium Python Linked List Math Recursion ✔️ ✔️
* 0021 Merge Two Sorted Lists Easy Python Linked List Recursion ✔️
0024 Swap Nodes in Pairs Medium Python Linked List Recursion ✔️
0146 LRU Cache Medium Python Linked List ✔️
* 0148 Sort List Medium Python Linked List Divide and Conquer ✔️

Stack

# LeetCode Link Difficulty Solution Data Structures Patterns / Approaches B75 CTCI EPI TIQ CCH
0020 Valid Parentheses Easy Python String Stack ✔️ ✔️

Dynamic Programming

# LeetCode Link Difficulty Solution Data Structures Patterns / Approaches B75 CTCI EPI TIQ CCH
* 0072 Edit Distance Hard Python String DP

Two Pointers

# LeetCode Link Difficulty Solution Data Structures Patterns / Approaches B75 CTCI EPI TIQ CCH
0011 Container With Most Water Medium Python Array Two Pointers Greedy ✔️
* 0015 3Sum Medium Python Array Two Pointers Sorting ✔️ ✔️
0016 3Sum Closest Medium Python Array Two Pointers Sorting ✔️
* 0019 Remove Nth Node From End of List Medium Python Linked List Two Pointers ✔️ ✔️
0026 Remove Duplicates from Sorted Array Easy Python Array Two Pointers ✔️

Sliding Window

# LeetCode Link Difficulty Solution Data Structures Patterns / Approaches B75 CTCI EPI TIQ CCH
* 0003 Longest Substring Without Repeating Characters Medium Python String Hash Table Sliding Window ✔️ ✔️

Binary Search

# LeetCode Link Difficulty Solution Data Structures Patterns / Approaches B75 CTCI EPI TIQ CCH
* 0033 Search in Rotated Sorted Array Medium Python Array Binary Search ✔️ ✔️
0034 Find First and Last Position of Element in Sorted Array Medium Python Array Binary Search
* 0035 Search Insert Position Easy Python Array Binary Search ✔️

Divide and Conquer

# LeetCode Link Difficulty Solution Data Structures Patterns / Approaches B75 CTCI EPI TIQ CCH
* 0023 Merge k Sorted Lists Hard Python Linked List DC Merge Sort ✔️

Backtracking

# LeetCode Link Difficulty Solution Data Structures Patterns / Approaches B75 CTCI EPI TIQ CCH
0017 Letter Combinations of a Phone Number Medium Python String Hash Table Backtracking ✔️
0046 Permutations Medium Python Array Backtracking

Misc

# LeetCode Link Difficulty Solution Data Structures Patterns / Approaches B75 CTCI EPI TIQ CCH
0001 Two Sum Easy Python Array Hash Table ✔️ ✔️
0009 Palindrome Number Easy Python Math ✔️
0013 Roman to Integer Easy Python String Hash Table Math ✔️
0014 Longest Common Prefix Easy Python String
0022 Generate Parentheses Medium ✔️
0046 Permutations Medium ✔️
0048 Rotate Image Medium Python Array Matrix Math ✔️ ✔️
0049 Group Anagrams Medium Python Hash Table String Sorting ✔️ ✔️
* 0053 Maximum Subarray Easy Python Array DP DC ✔️ ✔️
0054 Spiral Matrix Medium Python Array Matrix Simulation ✔️ ✔️
* 0055 Jump Game Medium Python Array DP Greedy ✔️ ✔️ ✔️
0056 Merge Intervals Medium Python Array Sorting ✔️ ✔️
0057 Insert Interval Medium Python Array ✔️ ✔️
0062 Unique Paths Medium Python Array Matrix Math DP Combinatorics ✔️ ✔️ ✔️
0063 Unique Paths II Medium Python Array Matrix DP ✔️
0070 Climbing Stairs Easy Python Math DP Memorization ✔️ ✔️
0073 Set Matrix Zeroes Medium Python Array Matrix ✔️ ✔️ ✔️
0075 Sort Colors Medium ✔️
0076 Minimum Window Substring Hard Hash Table String Sliding Window ✔️
0078 Subsets Medium ✔️
* 0079 Word Search Medium Python Array Matrix Backtracking ✔️ ✔️
0083 Remove Duplicates from Sorted List Easy Python Linked List Two Pointers
* 0086 Partition List Medium Python Linked List Two Pointers ✔️
0091 Decode Ways Medium Python String DP ✔️
0094 Binary Tree Inorder Traversal Easy ✔️
0098 Validate Binary Search Tree Medium Python Binary Tree BST DFS ✔️ ✔️
0100 Same Tree Easy Python Binary Tree DFS BFS ✔️
0101 Symmetric Tree Easy Python Binary Tree DFS BFS
0102 Binary Tree Level Order Traversal Medium Python Binary Tree BFS ✔️
0103 Binary Tree Zigzag Level Order Traversal Medium ✔️
0104 Maximum Depth of Binary Tree Easy Python Binary Tree DFS BFS ✔️ ✔️
* 0105 Construct Binary Tree from Preorder and Inorder Traversal Medium Python Array Hash Table Binary Tree DC ✔️ ✔️
0108 Convert Sorted Array to Binary Search Tree Easy Python Array Binary Tree BST DC ✔️
* 0109 Convert Sorted List to Binary Search Tree Medium Python Linked List Binary Tree BST DC ✔️
0110 Balanced Binary Tree Easy Python Binary Tree DFS ✔️
* 0111 Minimum Depth of Binary Tree Easy Python Binary Tree DFS BFS ✔️
0116 Populating Next Right Pointers in Each Node Medium ✔️
0118 Pascal's Triangle Easy Python Array DP
0121 Best Time to Buy and Sell Stock Easy Python Array DP ✔️
0122 Best Time to Buy and Sell Stock II Easy Python Array DP Greedy ✔️
* 0124 Binary Tree Maximum Path Sum Hard Python Binary Tree DP DFS ✔️
0125 Valid Palindrome Easy Python String Two Pointers ✔️
* 0128 Longest Consecutive Sequence Medium Python Array Hash Table Union Find ✔️
0133 Clone Graph Medium Python Graph Hash Table DFS BFS ✔️ ✔️
0136 Single Number Easy Python Array Bit Manipulation ✔️
0137 Single Number II Medium ✔️
0138 Copy List with Random Pointer Medium Python Linked List Hash Table ✔️
0139 Word Break Medium Python Hash Table String DP Memorization ✔️
0141 Linked List Cycle Easy Python Linked List Two Pointer ✔️
* 0143 Reorder List Medium Python Linked List Stack Two Pointer Recursion ✔️
0144 Binary Tree Preorder Traversal Easy Python Binary Tree DFS
0145 Binary Tree Postorder Traversal Easy Python Binary Tree DFS
0150 Evaluate Reverse Polish Notation Medium Python Array Stack Math ✔️
* 0152 Maximum Product Subarray Medium Python Array DP ✔️ ✔️
0154 Find Minimum in Rotated Sorted Array II Hard ✔️
0153 Find Minimum in Rotated Sorted Array Medium Python Array Binary Search ✔️ ✔️
0155 Min Stack Medium Python Stack Design ✔️
0160 Intersection of Two Linked Lists Easy ✔️
0162 Find Peak Element Medium ✔️
0163 Missing Ranges (Premium) Easy ✔️
* 0189 Rotate Array Medium Python Array Math Two Pointers ✔️
0190 Reverse Bits Easy Python Bit Manipulation ✔️
0191 Number of 1 Bits Easy Python Bit Manipulation ✔️ ✔️
0198 House Robber Medium Python Array DP ✔️
0200 Number of Islands Medium Python Array Matrix DFS BFS Union Find ✔️ ✔️
0206 Reverse Linked List Easy Python Linked List Recursion ✔️
* 0207 Course Schedule Medium Python Graph DFS BFS Topological Sort ✔️
0208 Implement Trie (Prefix Tree) Medium Python Trie Hash Table String Design ✔️
* 0211 Design Add and Search Words Data Structure Medium Python Trie String DFS Design ✔️
0212 Word Search II Hard ✔️
0213 House Robber II Medium Python Array DP ✔️
0215 Kth Largest Element in an Array Medium ✔️
0217 Contains Duplicate Easy Python Array Hash Table Sorting ✔️ ✔️
0226 Invert Binary Tree Easy Python Binary Tree DFS BFS ✔️
0230 Kth Smallest Element in a BST Medium Python Binary Tree BST DFS ✔️ ✔️
0235 Lowest Common Ancestor of a Binary Search Tree Easy Python Binary Tree BST DFS ✔️
* 0238 Product of Array Except Self Medium Python Array Prefix Sum ✔️
0240 Search a 2D Matrix II Medium ✔️
0242 Valid Anagram Easy Python Hash Table String Sorting ✔️
0252 Meeting Rooms (Premium) Easy ✔️
0253 Meeting Rooms II (Premium) Medium ✔️ ✔️
0261 Graph Valid Tree (Premium) Medium ✔️
0268 Missing Number Easy Python Array Math Bit Manipulation ✔️
0269 Alien Dictionary (Premium) Hard ✔️
0271 Encode and Decode Strings (Premium) Medium ✔️
0283 Move Zeroes Easy Python Array Two Pointers ✔️
0285 Inorder Successor in BST Medium ✔️
0295 Find Median from Data Stream Hard ✔️
* 0297 Serialize and Deserialize Binary Tree Hard Python String Binary Tree DFS BFS ✔️
* 0300 Longest Increasing Subsequence Medium Python Array Binary Search DP ✔️ ✔️
* 0322 Coin Change Medium Python Array DP BFS ✔️ ✔️
0323 Number of Connected Components in an Undirected Graph (Premium) Medium ✔️
0328 Odd Even Linked List Medium ✔️
0334 Increasing Triplet Subsequence Medium ✔️
0338 Counting Bits Easy Python DP Bit Manipulation ✔️
0347 Top K Frequent Elements Medium ✔️ ✔️
* 0371 Sum of Two Integers Medium Python Math Bit Manipulation ✔️
0377 Combination Sum IV Medium Python Array DP ✔️
* 0380 Insert Delete GetRandom O(1) Medium Python Array Hash Table Design
0417 Pacific Atlantic Water Flow Medium Python Array Matrix DFS BFS ✔️
* 0424 Longest Repeating Character Replacement Medium Python String Hash Table Sliding Window ✔️
0435 Non-overlapping Intervals Medium Python Array DP Greedy Sorting ✔️
0495 Teemo Attacking Easy Python Array
0567 Permutation in String Medium Python String Hash Table Two Pointers Sliding Window ✔️
0572 Subtree of Another Tree Medium Python Binary Tree DFS Hash Function ✔️
0647 Palindromic Substrings Medium Python String DP ✔️
0796 Rotate String Easy Python String ✔️
* 1143 Longest Common Subsequence Medium Python String DP ✔️

* Didn't solve independently, or worth reviewing.

Patterns

Abbr Pattern
DC Divide and Conquer
DP Dynamic Programming

Lists

Abbr List
B75 Blind 75 LeetCode Questions
CTCI Cracking the Coding Interview
EPI Elements of Programming Interviews, EPI to LC
TIQ Top Interview Questions, Top Interview Questions
CCH Clean Code Handbook

Solutions

About

LeetCode problems and solutions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published