This repo contains lessons and practice problems for our Data Structures and Algorithms Curriculum.
- Pursuit Core Data Structures and Algorithms Curriculum
Topic | Lesson | Lab |
---|---|---|
Introduction to Whiteboarding | All Stacks | n/a |
Big-O Notation | JavaScript / Swift | n/a |
Stacks | JavaScript / Swift | Swift |
Queues | JavaScript / Swift | Swift / JavaScript |
Linked List | JavaScript / Swift | Swift |
Hash Tables | JavaScript / Swift | Swift |
Recursion | JavaScript / Swift | Swift |
Binary Search | JavaScript / Swift | Swift |
Bubble Sort: Intro to Sorting* | JavaScript / Swift | Swift |
Insertion Sort | JavaScript / Swift | Swift |
Quick Sort | JavaScript / Swift | Swift |
Merge Sort | JavaScript / Swift | Swift |
Trees | JavaScript / Swift | Swift |
Standard | Problems |
---|---|
DSA-1-b: Linked Lists | |
DSA-1-d: Hash Tables | |
DSA-1-e: Stacks | |
DSA-1-f: Queues | |
DSA-1-g: Trees | |
DSA-3: Recursion | |
DSA-4: Sorting Algorithms | |
DSA-5-b: Binary Search |
Topic | Lesson | Lab | Video |
---|---|---|---|
Advanced Linked Lists | Swift | tbd | |
Advanced Sorting | Swift | tbd | tbd |
Advanced Trees | Swift | Swift | |
Graphs | Swift | tbd | |
Dynamic Programming and Memoization | Swift | Swift | |
Bits | Swift | tbd | |
Math | Swift | tbd | tbd |
Threading and Memory Management | tbd | tbd | tbd |
Databases and SQL | tbd | tbd | tbd |
Object Oriented Design | tbd | tbd | tbd |
System Design and Scalability | tbd | tbd | tbd |
This section contains additional problems separated by domain. If you see an error or have a contribution to add, please open a Pull Request against this repo.
Problem | Difficulty | Tags | Solution |
---|---|---|---|
Diagonal Sum | Easy | [Arrays, Matrices, Integers] | Link |
Find Repeats | Easy | [Arrays, Integers, Duplicates] | Link |
Sum of first five even numbers | Easy | [Arrays, Integers] | Link |
Greatest Row or Column in Matrix | Easy | [Arrays, Matrices, Integers] | Link |
Largest Product of Two | Easy | [Arrays, Products] | Link |
Matrix Sum Without Corners | Easy | [Arrays, Matrices, Integers] | Link |
Pair Sum | Easy | [Arrays, Integers] | Link |
Product of All Except Index | Easy | [Arrays, Products] | Link |
Remove Duplicates | Easy | [Arrays, Duplicates] | Link |
Second Largest | Easy | [Arrays, Integers] | Link |
List Min Abs Diff | Easy | [Arrays, Integers] | Link |
Merge Sorted Arrays | Medium | [Arrays] | Link |
Shift Zeros | Medium | [Arrays, Duplicates] | Link |
Product of Three | Medium | [Arrays, Products, Integers] | Link |
Merge Overlapping Intervals | Hard+ | [Arrays, Intervals] | Link |
Keypad | Hard | [Arrays] | Link |
N or More Occurrences | Easy | [Arrays] | Link |
Binary Search / Git Bisect | Medium | [Arrays] | Link |
Problem | Difficulty | Tags | Solution |
---|---|---|---|
Avoid Fives | Easy | [Integers] | Link |
Add Digits | Medium | [Integers] | Link |
Backwards Primes | Medium | [Integers, Primes] | Link |
Happy Numbers | Medium | [Integers, Primes] | Link |
Problem | Difficulty | Tags | Solution |
---|---|---|---|
Swap Nodes | Medium | [Linked Lists] | Link |
Traverse / Pretty Print | Easy | [Linked Lists] | Link |
Problem | Difficulty | Tags | Solution |
---|---|---|---|
Largest Element | Easy | [Stacks] | Link |
Valid Parentheses | Medium | [Strings, Stacks] | Link |
Two-Lane Parking Management System | Medium | [Stacks, Objects] | Link |
Problem | Difficulty | Tags | Solution |
---|---|---|---|
Stack Queue | Medium | [Queues, Stacks] | Link |
Queue Range | Easy | [Queues] | Link |
Problem | Difficulty | Tags | Solution |
---|---|---|---|
Palindrome | Easy | [Strings] | Link |
Pangram | Easy | [Strings] | Link |
Remove Vowels | Easy | [Strings] | Link |
Reverse String | Easy | [Strings] | Link |
Pattern Match | Easy | [Arrays, Strings, Dictionaries] | Link |
Sequence Count in String | Medium | [Arrays, Integers] | Link |
Problem | Difficulty | Tags | Solution |
---|---|---|---|
Keyboard Row | Easy | [Hash Tables] | Link |
Unique Occurrences | Medium | [Hash Tables] | Link |
Longest Substring Without Repeating Characters | Hard | [Hash Tables] | Link |
Problem | Difficulty | Tags | Solution |
---|---|---|---|
Jugs Of Water | Easy | [Logic] | Link |
Nine Coins | Easy | [Logic] | Link |
Trucks | Medium | [Logic] | Link |
Troll | Medium | [Logic] | Link |
Rope Burning | Hard | [Logic] | Link |
Blue Eyed Island | Hard | [Logic] | Link |
Problem | Difficulty | Tags | Solution |
---|---|---|---|
Factorial | Medium | [Recursion] | Link |
Recursive Sum | Easy | [Recursion] | Link |
Reverse Sentence | Medium | [Recursion, Strings] | Link |
Pascal's Triangle | Medium | [Recursion] | Link |
Problem | Difficulty | Tags | Solution |
---|---|---|---|
Print Binary Tree With a Stack | Medium | [Tree] | Link |
Print Binary Tree With Recursion | Medium | [Tree,Recursion] | Link |
Sum Values in Tree | Medium | [Tree] | Link |
Max Value in Tree | Hard | [Tree] | Link |
Tree Height (or Depth) | Hard | [Tree] | Link |
Is Tree Balanced | Hard | [Tree] | Link |
Tree Equality | Hard+ | [Tree] | Link |
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html