Need help with LeetCode-Swift?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

soapyigu
3.8K Stars 665 Forks MIT License 1.0K Commits 34 Opened issues

#### Description

Solutions to LeetCode by Swift

!
?

# LeetCode by Swift

LeetCode Online Judge is a website containing many algorithm questions. Most of them are real interview questions of Google, Facebook, LinkedIn, Apple, etc. This repo shows my solutions by Swift with the code style strictly follows the RayWenderlich Swift Style Guide. Please feel free to reference and STAR to support this repo, thank you!

## Progress

Problem Status shows the latest progress to all 1000+ questions. Currently we have 323 completed solutions. Note: questions with ♥ mark means that you have to Subscript to premium membership of LeetCode to unlock them.

## Array

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Verify an Alien Dictionary|Swift| Easy| O(n)| O(n)| Sort Array By Parity|Swift| Easy| O(n)| O(n)| Max Consecutive Ones| Swift| Easy| O(n)| O(1)| Heaters| Swift| Easy| O(nlogn)| O(1)| Number of Boomerangs| Swift| Easy| O(n ^ 2)| O(n)| Island Perimeter| Swift| Easy| O(nm)| O(1)| Majority Element| Swift| Easy| O(n)| O(1)| Majority Element II| Swift| Medium| O(n)| O(1)| First Missing Positive| Swift| Hard| O(n)| O(n)| Intersection of Two Arrays| Swift| Easy| O(n)| O(n)| Intersection of Two Arrays II| Swift| Easy| O(n)| O(n)| Contains Duplicate| Swift| Easy| O(n)| O(n)| Contains Duplicate II| Swift| Easy| O(n)| O(n)| Remove Duplicates from Sorted Array| Swift| Easy| O(n)| O(1)| Remove Duplicates from Sorted Array II| Swift| Medium| O(n)| O(1)| Move Zeroes| Swift| Easy| O(n)| O(1)| Remove Element| Swift| Easy| O(n)| O(1)| Strobogrammatic Number| Swift| Easy| O(n)| O(1)| Can Place Flowers| Swift| Easy| O(n)| O(1)| Two Sum| Swift| Easy| O(n)| O(n)| Two Sum II - Input array is sorted| Swift| Easy| O(n)| O(1)| Two Sum III - Data structure design| Swift| Easy| O(n)| O(1)| Two Sum Less Than K| Swift| Easy| O(nlogn)| O(n)| 3Sum| Swift| Medium| O(n^2)| O(nC3)| 3Sum Closest| Swift| Medium| O(n^2)| O(nC3)| 4Sum| Swift| Medium| O(n^3)| O(nC4)| Increasing Triplet Subsequence| Swift| Medium| O(n)| O(1)| Summary Ranges| Swift| Medium| O(n)| O(n)| Range Sum Query 2D - Immutable| Swift| Medium| O(mn)| O(mn)| Missing Ranges| Swift| Medium| O(n)| O(1)| Asteroid Collision| Swift| Medium| O(n)| O(n)| Maximize Distance to Closest Person| Swift| Easy| O(n)| O(1)| Exam Room| Swift| Medium| O(n)| O(n)| Shortest Word Distance| Swift| Easy| O(n)| O(1)| Shortest Word Distance II| Swift| Medium| O(n)| O(n)| Shortest Word Distance III| Swift| Medium| O(n)| O(1)| Minimum Size Subarray Sum| Swift| Medium| O(n)| O(1)| Maximum Size Subarray Sum Equals k| Swift| Medium| O(n)| O(n)| Smallest Range| Swift| Hard | O(nm)| O(nm)| Product of Array Except Self| Swift| Medium| O(n)| O(1)| Rotate Array| Swift| Easy| O(n)| O(1)| Rotate Image| Swift| Medium| O(n^2)| O(1)| Spiral Matrix| Swift| Medium| O(n^2)| O(1)| Spiral Matrix II| Swift| Medium| O(n^2)| O(1)| Diagonal Traverse| Swift| Medium| O(mn)| O(1)| Valid Sudoku| Swift| Easy| O(n^2)| O(n)| Set Matrix Zero| Swift| Medium| O(n^2)| O(1)| Next Permutation| Swift| Medium| O(n)| O(1)| Gas Station| Swift| Medium| O(n)| O(1)| Game of Life| Swift| Medium| O(n)| O(1)| Task Scheduler| Swift| Medium| O(nlogn)| O(n)| Validate IP Address| Swift| Medium| O(n)| O(1)| Sliding Window Maximum | Swift| Hard| O(n)| O(n)| Longest Consecutive Sequence| Swift| Hard| O(n)| O(n)| Create Maximum Number| Swift| Hard| O(n^2)| O(n)| Find All Numbers Disappeared in an Array| Swift| Easy| O(n)| O(1)|

## String

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Fizz Buzz| Swift| Easy| O(n)| O(1)| First Unique Character in a String| Swift| Easy| O(n)| O(1)| Keyboard Row| Swift| Easy| O(nm)| O(n)| Valid Word Abbreviation| Swift| Easy| O(n)| O(n)| Valid Palindrome| Swift| Easy| O(n)| O(n)| Valid Palindrome II| Swift| Easy| O(n)| O(n)| Detect Capital| Swift| Easy| O(n)| O(1)| Count and Say| Swift| Easy| O(n^2)| O(1)| Flip Game| Swift| Easy| O(n)| O(n)| Implement strStr()| Swift| Easy| O(nm)| O(n)| Isomorphic Strings| Swift| Easy| O(n)| O(n)| Reverse String| Swift| Easy| O(n)| O(n)| Reverse String II| Swift| Easy| O(n)| O(n)| Reverse Vowels of a String| Swift| Easy| O(n)| O(n)| Reverse Words in a String| Swift| Medium| O(n)| O(1)| Reverse Words in a String II| Swift| Medium| O(n)| O(1)| Reverse Words in a String III| Swift| Easy| O(n)| O(1)| Length of Last Word| Swift| Easy| O(n)| O(n)| String Compression| Swift| Easy| O(n)| O(1)| Add Strings| Swift| Easy| O(n)| O(1)| Shortest Distance to a Character| Swift| Easy| O(n)| O(1)| Multiply Strings| Swift| Medium| O(n)| O(1)| Palindrome Permutation| Swift| Easy| O(n)| O(n)| Valid Anagram| Swift| Easy| O(n)| O(n)| Ransom Note| Swift| Easy| O(n)| O(n)| Group Anagrams| Swift| Medium| O(nmlogm + nlogn)| O(n) Find Duplicate File in System| Swift| Medium| O(nm)| O(n) Longest Common Prefix| Swift| Easy| O(nm)| O(m)| Longest Substring Without Repeating Characters| Swift| Medium| O(n)| O(n)| One Edit Distance| Swift| Medium| O(n)| O(n)| Word Pattern| Swift| Easy| O(n)| O(n)| Permutation in String| Swift| Medium| O(nm)| O(n)| Find All Anagrams in a String| Swift| Medium| O(n)| O(n)| Minimum Window Substring| Swift| Hard| O(n^2)| O(n)| Longest Substring with At Most Two Distinct Characters| Swift| Hard| O(n)| O(n)| Longest Substring with At Most K Distinct Characters| Swift| Hard| O(n)| O(n)| Text Justification| Swift| Hard| O(n)| O(n)| Find the Closest Palindrome| Swift| Hard| O(n)| O(n)|

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Reverse Linked List| Swift| Easy| O(n)| O(1)| Palindrome Linked List| Swift| Easy| O(n)| O(1)| Swap Nodes in Pairs| Swift| Easy| O(n)| O(1)| Remove Linked List Elements| Swift| Easy| O(n)| O(1)| Remove Duplicates from Sorted List| Swift| Easy| O(n)| O(1)| Remove Duplicates from Sorted List II| Swift| Medium| O(n)| O(1)| Remove Nth Node From End of List| Swift| Easy| O(n)| O(1)| Odd Even Linked List| Swift| Medium| O(n)| O(1)| Rotate List| Swift| Medium| O(n)| O(1)| Reorder List| Swift| Medium| O(n)| O(1)| Merge Two Sorted Lists| Swift| Easy| O(n)| O(1)| Merge k Sorted Lists| Swift| Hard| O(mlogn)| O(1)| Partition List| Swift| Medium| O(n)| O(1)| LRU Cache | Swift | Hard| O(1)| O(1)| LFU Cache | Swift | Hard| O(1)| O(1)|

## Stack

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Min Stack| Swift| Easy| O(1)| O(n)| Max Stack| Swift| Easy| O(n)| O(n)| Valid Parentheses| Swift| Easy| O(n)| O(n)| Longest Valid Parentheses| Swift| Hard| O(n)| O(n)| Evaluate Reverse Polish Notation| Swift| Medium| O(n)| O(n)| Exclusive Time of Functions| Swift | Medium| O(n)| O(n)| Simplify Path| Swift| Medium| O(n)| O(n)| Remove K Digits| Swift| Medium| O(n)| O(n)| Ternary Expression Parser| Swift| Medium| O(n)| O(n)| Binary Tree Preorder Traversal| Swift| Medium| O(n)| O(n)| Binary Tree Inorder Traversal| Swift| Medium| O(n)| O(n)| Binary Search Tree Iterator| Swift| Medium| O(n)| O(n)| Binary Tree Postorder Traversal| Swift| Hard| O(n)| O(n)| Decode String| Swift| Medium| O(n)| O(n)| Basic Calculator| Swift| Hard| O(n)| O(n)|

## Queue

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Implement Queue using Stacks| Swift| Easy| O(n)| O(n)|

## Tree

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Same Tree| Swift| Easy| O(n)| O(n)| Symmetric Tree| Swift| Easy| O(n)| O(n)| Invert Binary Tree| Swift| Easy| O(n)| O(n)| Binary Tree Upside Down| Swift| Medium| O(n)| O(1)| Minimum Depth of Binary Tree| Swift| Easy| O(n)| O(1)| Maximum Depth of Binary Tree| Swift| Easy| O(n)| O(1)| Diameter of Binary Tree| Swift| Easy| O(n)| O(1)| Balanced Binary Tree| Swift| Easy| O(n)| O(n)| Sum of Left Leaves| Swift| Easy| O(n)| O(1)| Flatten Binary Tree to Linked List| Swift| Medium| O(n)| O(1)| Convert Sorted Array to Binary Search Tree| Swift| Easy| O(n)| O(1)| Validate Binary Search Tree| Swift| Medium| O(n)| O(log n)| Binary Tree Level Order Traversal| Swift| Easy| O(n)| O(n)| Binary Tree Level Order Traversal II| Swift| Easy| O(n)| O(n)| Merge Two Binary Trees | Swift | Easy | O(n) | O(n) | Binary Tree Zigzag Level Order Traversal| Swift| Medium| O(n)| O(n)| Binary Tree Vertical Order Traversal| Swift| Medium| O(n)| O(n)| Kth Smallest Element in a BST| Swift| Medium| O(n)| O(n)| Binary Tree Right Side View| Swift| Medium| O(n)| O(n)| Construct Binary Tree from Preorder and Inorder Traversal| Swift| Medium| O(nlogn)| O(1)| Construct Binary Tree from Inorder and Postorder Traversal| Swift| Medium| O(nlogn)| O(1)| Path Sum| Swift| Easy| O(n)| O(n)| Path Sum II| Swift| Medium| O(n)| O(n)| Path Sum III| Swift| Easy| O(n^2)| O(1)| Bnary Tree Paths| Swift| Easy| O(n)| O(n)| Binary Tree Maximum Path Sum| Swift| Hard| O(n)| O(1)| House Robber III| Swift| Medium| O(n)| O(1)| Unique Binary Search Trees| Swift| Medium| O(n^2)| O(n)| Recover Binary Search Tree| Swift| Hard| O(n)| O(1)| Serialize and Deserialize Binary Tree| Swift| Hard| O(n)| O(n)| Serialize and Deserialize N-ary Tree| Swift| Hard| O(n)| O(n)|

## Dynamic programming

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Nested List Weight Sum| Swift| Easy| O(n)| O(1)| Climbing Stairs| Swift| Easy| O(n)| O(1)| Min Cost Climbing Stairs| Swift| Easy| O(n)| O(n)| Unique Paths| Swift| Medium| O(mn)| O(mn)| Unique Paths II| Swift| Medium| O(mn)| O(mn)| Nested List Weight Sum II| Swift| Medium| O(n)| O(n)| Flip Game II| Swift| Medium| O(n)| O(n)| Can I Win| Swift| Medium| O(2^n)| O(n)| Decode Ways| Swift | Medium| O(n)|O(n)| Minimum Path Sum| Swift| Medium| O(mn)| O(mn)| Generate Parentheses| Swift| Medium| O(2^n)| O(n)| Different Ways to Add Parentheses| Swift| Medium| O(n^n)| O(n)| Best Time to Buy and Sell Stock| Swift| Easy| O(n)| O(1)| Best Time to Buy and Sell Stock II| Swift| Medium| O(n)| O(1)| Best Time to Buy and Sell Stock III| Swift| Hard| O(n)| O(n)| Best Time to Buy and Sell Stock IV| Swift| Hard| O(n^2)| O(n)| Best Time to Buy and Sell Stock with Cooldown| Swift| Medium| O(n^2)| O(n)| Maximum Sum of 3 Non-Overlapping Subarrays| Swift| Hard| O(n)| O(n)| Coin Change| Swift| Medium| O(n^2)| O(n)| Coin Change II| Swift| Medium| O(n^2)| O(n)| Paint House| Swift| Easy| O(n)| O(n)| Paint House II| Swift| Hard| O(n)| O(1)| Longest Increasing Subsequence| Swift| Medium| O(nlogn)| O(n)| Palindromic Substrings| Swift| Medium| O(n^2)| O(n^2)| Longest Palindromic Substring| Swift| Medium| O(n^2)| O(n^2)| Perfect Squares| Swift| Medium| O(n^2)| O(n)| House Robber| Swift| Easy| O(n)| O(1)| House Robber II| Swift| Medium| O(n)| O(1)| Paint Fence| Swift| Easy| O(n)| O(n)| Maximum Subarray| Swift| Medium| O(n)| O(1)| Maximum Product Subarray| Swift| Medium| O(n)| O(1)| Maximal Square| Swift| Medium| O(mn)| O(mn)| Edit Distance| Swift| Hard| O(mn)| O(mn)| Combination Sum IV| Swift| Medium| O(2^n)| O(n)| Triangle| Swift| Medium| O(2^n)| O(m)| Wiggle Subsequence| Swift| Medium| O(n)| O(1)| Wildcard Matching| Swift| Hard| O(mn)| O(mn)| Regular Expression Matching| Swift| Hard| O(mn)| O(mn)| Minimum Window Subsequence| Swift| Hard| O(mn)| O(mn)| Guess Number Higher or Lower II| Swift| Medium| O(nlogn)| O(n^2)| Burst Ballons| Swift| Hard| O(n^3)| O(n)| Frog Jump| Swift| Hard| O(n^2)| O(n)| Jump Game| Swift| Medium| O(n)| O(1)| Dungeon Game| Swift| Hard| O(nm)| O(nm)|

## Depth-first search

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Permutations| Swift| Medium| O(n^n)| O(n)| Permutations II| Swift| Medium| O(n^n)| O(n)| Subsets| Swift| Medium| O(n^n)| O(n)| Subsets II| Swift| Medium| O(n^n)| O(n)| Combinations| Swift| Medium| O(n^n)| O(n)| Combination Sum| Swift| Medium| O(n^n)| O(2^n - 1)| Combination Sum II| Swift| Medium| O(n^n)| O(2^n - 2)| Combination Sum III| Swift| Medium| O(n^n)| O(nCk)| Letter Combinations of a Phone Number| Swift| Medium| O(4^n)| O(n)| Factor Combinations| Swift| Medium| O(n^n))| O(2^n - 1)| Strobogrammatic Number II| Swift| Medium| O(m^n)| O(n)| Generalized Abbreviation| Swift| Medium| O(n^n)| O(2^n)| Palindrome Partitioning| Swift| Medium| O(n^n)| O(n)| Is Graph Bipartite| Swift| Medium| O(n)| O(n)| Number of Islands| Swift| Medium| O((mn)^2)| O(1)| Walls and Gates| Swift| Medium| O(n^n)| O(2^n)| Word Search| Swift| Medium| O((mn * 4 ^ (k - 1))| O(mn)| Word Search II| Swift| Hard| O(((mn)^2))| O(n^2)| Add and Search Word - Data structure design| Swift| Medium| O(n)| O(n)| Partition to K Equal Sum Subsets| Swift| Medium| O(k^n)| O(n)| N-Queens| Swift| Hard| O((n^n))| O(n^2)| N-Queens II| Swift| Hard| O((n^n))| O(n)| Word Squares| Swift| Hard| O((n^2))| O(n^2)| Word Pattern II| Swift| Hard| O(n^n)| O(n)| Sudoku Solver| Swift| Hard| O(n^4)| O(1)| Remove Invalid Parentheses| Swift| Hard| O(n^n)| O(n)| Expression Add Operators| Swift| Hard| O(n^n)| O(n)|

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Word Ladder| Swift| Medium| O(nm)| O(nm)| Evaluate Division| Swift| Medium| O(n^2)| O(n)| Shortest Distance from All Buildings| Swift| Hard| O((mn)^2)| O(mn)|

## Math

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Add Binary| Swift| Easy| O(n)| O(n)| Add Two Numbers| Swift| Medium| O(n)| O(1)| Add Digits| Swift| Easy| O(1)| O(1)| Plus One| Swift| Easy| O(n)| O(1)| Missing Number| Swift| Easy| O(n)| O(1)| Divide Two Integers| Swift| Medium| O(logn)| O(1)| Number Complement| Swift| Easy| O(n)| O(1)| Hamming Distance| Swift| Easy| O(n)| O(1)| Integer Break| Swift| Medium| O(logn)| O(1)| Factorial Trailing Zeroes| Swift| Medium | O(logn)| O(1)| Happy Number| Swift| Easy| O(n)| O(n)| Single Number| Swift| Medium| O(n)| O(1)| Ugly Number| Swift| Easy| O(logn)| O(1)| Ugly Number II| Swift| Medium| O(n)| O(n)| Super Ugly Number| Swift| Medium| O(n^2)| O(n)| Count Primes| Swift| Easy| O(n)| O(n)| String to Integer (atoi)| Swift| Easy| O(n)| O(1)| Fraction to Recurring Decimal| Swift | Medium| O(logn)| O(n)| Pow(x, n)| Swift| Medium| O(logn)| O(1)| Power of Two| Swift| Easy| O(1)| O(1)| Power of Three| Swift| Easy| O(1)| O(1)| Super Power| Swift| Medium| O(n)| O(1)| Sum of Two Integers| Swift| Easy| O(n)| O(1)| Reverse Integer| Swift| Easy| O(n)| O(1)| Excel Sheet Column Number| Swift| Easy| O(n)| O(1)| Integer to Roman| Swift| Medium| O(n)| O(1)| Roman to Integer| Swift| Easy| O(n)| O(n)| Integer to English Words| Swift| Hard| O(n)| O(1)| Sparse Matrix Multiplication| Swift| Medium| O(n^3)| O(n^2)| Rectangle Area| Swift| Easy| O(1)| O(1)| Minimum Moves to Equal Array Elements| Swift| Easy| O(n)| O(1)| Trapping Rain Water| Swift| Hard| O(n)| O(n)| Container With Most Water| Swift| Medium| O(n)| O(1)| Counting Bits| Swift| Medium| O(n)| O(n)| K-th Smallest in Lexicographical Order| Swift| Hard| O(n)| O(1)| Gary Code| Swift| Medium| O(n)| O(2^n)| Permutation Sequence| Swift| Medium| O(n^2)| O(1)| Line Reflection| Swift| Medium| O(n)| O(n)| Valid Number| Swift| Hard| O(n)| O(1)|

## Search

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Closest Binary Search Tree Value| Swift| Easy| O(logn)| O(1)| Closest Binary Search Tree Value II| Swift| Hard| O(n)| O(n)| Search in Rotated Sorted Array| Swift| Hard| O(logn)| O(1)| Search in Rotated Sorted Array II| Swift| Medium| O(logn)| O(1)| Find Minimum in Rotated Sorted Array| Swift| Medium| O(logn)| O(1)| Find Minimum in Rotated Sorted Array II| Swift| Hard| O(logn)| O(1)| Search a 2D Matrix| Swift| Medium| O(log(m + n))| O(1)| Search a 2D Matrix II| Swift| Medium| O(m + n)| O(1)| Search for a Range| Swift| Medium| O(logn)| O(1)| Search Insert Position| Swift| Medium| O(logn)| O(1)| Peak Index in a Mountain Array| Swift| Easy| O(logn)| O(1)| Find Peak Element| Swift| Medium| O(logn)| O(1)| Random Pick with Weight| Swift| Medium| O(logn)| O(1)| Sqrt(x)| Swift| Medium| O(logn)| O(1)| Median of Two Sorted Arrays| Swift| Hard| O(log(m + n))| O(1)| Minimize Max Distance to Gas Station| Swift| Hard| O(nlogm)| O(1)|

## Sort

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Merge Sorted Array| Swift| Easy| O(n)| O(1)| Sort Colors| Swift| Medium| O(n)| O(1)| Wiggle Sort| Swift| Medium| O(n)| O(1)| Wiggle Sort II| Swift| Medium| O(nlogn)| O(n)| Sort Transformed Array| Swift| Medium| O(n)| O(1)| Top K Frequent Elements| Swift| Medium| O(nlogn)| O(n)| Meeting Rooms| Swift| Easy| O(nlogn)| O(1)| Meeting Rooms II| Swift| Medium| O(nlogn)| O(n)| Merge Intervals| Swift| Hard| O(nlogn)| O(n)| Alien Dictionary| Swift| Hard| O(nm)| O(nm)| Kth Largest Element in an Array| Swift| Medium| O(nlogn)| O(n)| Array Partition I| Swift|Easy| O(nlogn)| O(n)| Insert Interval| Swift|Hard| O(n)| O(1)| Largest Number| Swift| Medium| O(nlogn)| O(1)|

## Graph

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Number of Connected Components in an Undirected Graph| Swift| Medium| O(nlogn)| O(n)| Graph Valid Tree| Swift| Medium| O(nlogn)| O(n)| Number of Islands II| Swift| Hard| O(klogmn)| O(mn)| Course Schedule| Swift| Medium| O(n)| O(n)| Course Schedule II| Swift| Medium| O(n)| O(n)|

## Design

| Title | Solution | Difficulty | Time | Space | | ----- | -------- | ---------- | ---- | ----- | Shuffle an Array| Swift| Easy| O(n)| O(1)| Design HashMap| Swift| Easy| O(n)| O(n)| Design Tic-Tac-Toe| Swift| Medium| O(1)| O(n)| Flatten Nested List Iterator| Swift| Medium| O(n)| O(n)| Flatten 2D Vector| Swift| Medium | O(n)| O(n)| Implement Trie (Prefix Tree)| Swift| Medium | O(n)| O(n)| Add and Search Word - Data structure design| Swift| Medium | O(24^n)| O(n)| Insert Delete GetRandom O(1)| Swift| Medium| O(1)| O(n)| LRU Cache| Swift| Hard| O(1)| O(n)| All O`one Data Structure| Swift| Hard| O(1)| O(n)|

| Title | Solution | Difficulty | Frequency | | ----- | -------- | ---------- | --------- | Plus One| Swift| Easy| ★★★★★★| Number of Islands| Swift| Medium| ★★★★| Summary Ranges| Swift| Medium| ★★★★| Perfect Squares| Swift| Medium| ★★★★| Merge Intervals| Swift| Hard| ★★★| Valid Parentheses| Swift| Easy| ★★★| Trapping Rain Water| Swift| Hard| ★★| Merge k Sorted Lists| Swift| Hard| ★★| Longest Consecutive Sequence| Swift| Hard| ★★| Find Peak Element| Swift| Medium| ★★| Power of Two| Swift| Easy| ★★| Spiral Matrix| Swift| Medium| ★★| Sliding Window Maximum | Swift| Hard| ★★| Pow(x, n)| Swift| Medium| ★★| Letter Combinations of a Phone Number| Swift| Medium| ★★| Heaters| Swift| Easy| ★|

| Title | Solution | Difficulty | Frequency | | ----- | -------- | ---------- | --------- | 3Sum| Swift| Medium| ★★★★★★| Valid Palindrome| Swift| Easy| ★★★★★★| Valid Palindrome II| Swift| Easy| ★★★★★★| Move Zeroes| Swift| Easy| ★★★★★★| Remove Invalid Parentheses| Swift| Hard| ★★★★★★| Add Binary| Swift| Easy| ★★★★★| Two Sum| Swift| Easy| ★★★★★| Bnary Tree Paths| Swift| Easy| ★★★★| Letter Combinations of a Phone Number| Swift| Medium| ★★★★| Merge k Sorted Lists| Swift| Hard| ★★★★| Reverse Linked List| Swift| Easy| ★★★| Merge Intervals| Swift| Hard| ★★★| Number of Islands| Swift| Medium| ★★★| Reverse Linked List| Swift| Easy| ★★★| Expression Add Operators| Swift| Hard| ★★★| Subsets| Swift| Medium| ★★★| Sort Colors| Swift| Medium| ★★|

## Snapchat

| Title | Solution | Difficulty | Frequency | | ----- | -------- | ---------- | --------- | Game of Life | Swift| Medium| ★★★★★★| Meeting Rooms II| Swift| Medium| ★★★★★★| Valid Sudoku| Swift| Easy| ★★★★★| Binary Tree Vertical Order Traversal| Swift| Medium| ★★★★| Alien Dictionary| Swift| Hard| ★★★★| One Edit Distance| Swift| Medium| ★★★| Sudoku Solver| Swift| Hard| ★★★| Reverse Linked List| Swift| Easy| ★★| Unique Binary Search Trees| Swift| Medium| ★★| Minimum Window Substring| Swift| Hard| ★★| Remove K Digits| Swift| Medium| ★| Ternary Expression Parser| Swift| Medium| ★|

## Uber

| Title | Solution | Difficulty | Frequency | | ----- | -------- | ---------- | --------- | Valid Sudoku| Swift| Easy| ★★★★| Spiral Matrix| Swift| Medium| ★★★★| Letter Combinations of a Phone Number| Swift| Medium| ★★★★| Group Anagrams| Swift| Medium| ★★★★| Word Pattern| Swift| Easy| ★★★| Roman to Integer| Swift| Easy| ★★★| Combination Sum| Swift| Medium| ★★|

## Airbnb

| Title | Solution | Difficulty | Frequency | | ----- | -------- | ---------- | --------- | Two Sum| Swift| Easy| ★★★★★| Text Justification| Swift| Hard| ★★★★| House Robber| Swift| Easy| ★★| Single Number| Swift| Medium| ★★| Word Search II| Swift| Hard| ★★| Add Two Numbers| Swift| Medium| ★★|

| Title | Solution | Difficulty | Frequency | | ----- | -------- | ---------- | --------- | Maximum Subarray| Swift| Medium| ★★★★★★| Pow(x, n)| Swift| Medium| ★★★★★★| Merge Intervals| Swift| Hard| ★★★★★★| Isomorphic Strings| Swift| Easy| ★★★★★★| Search in Rotated Sorted Array| Swift| Hard| ★★★★★| Search for a Range| Swift| Medium| ★★★★★| Two Sum| Swift| Easy| ★★★★| Binary Tree Level Order Traversal| Swift| Easy| ★★★★| Evaluate Reverse Polish Notation| Swift| Medium| ★★★| Maximum Product Subarray| Swift| Medium| ★★★| Product of Array Except Self| Swift| Medium| ★★★| Symmetric Tree| Swift| Easy| ★★|

## Amazon

| Title | Solution | Difficulty | Frequency | | ----- | -------- | ---------- | --------- | Two Sum| Swift| Easy| ★★★★★★| Min Cost Climbing Stairs| Swift| Easy| ★★★★| Number of Islands| Swift| Medium| ★★| Add Two Numbers| Swift| Medium| ★★| Reverse Linked List| Swift| Easy| ★★| Valid Parentheses| Swift| Easy| ★★| Longest Palindromic Substring| Swift| Medium| ★★| Trapping Rain Water| Swift| Hard| ★★| Longest Substring Without Repeating Characters| Swift| Medium| ★★| Letter Combinations of a Phone Number| Swift| Medium| ★★| Valid Anagram| Swift| Easy| ★★| Rotate Image| Swift| Medium| ★★| Best Time to Buy and Sell Stock| Swift| Easy| ★★| 3Sum| Swift| Medium| ★★| Sliding Window Maximum | Swift| Hard| ★★|

## Microsoft

| Title | Solution | Difficulty | Frequency | | ----- | -------- | ---------- | --------- | Reverse Linked List| Swift| Easy| ★★★★★★| Two Sum| Swift| Easy| ★★★★★| String to Integer (atoi)| Swift| Easy| ★★★★| Add Two Numbers| Swift| Medium| ★★★★| Excel Sheet Column Number| Swift| Easy| ★★★★| Validate Binary Search Tree| Swift| Medium| ★★★| Merge Two Sorted Lists| Swift| Easy| ★★★|