Algorithmic Toolbox part1 (click to expand list)
- Assignment 1: Max Pairwise Product
- Assignment 2: Fibonacci Number
- Assignment 3: Last Digit of a Fibonacci Number
- Assignment 4: Greatest Common Divisor
- Assignment 5: Fibonacci Number Again
- Assignment 6: Money Change
- Assignment 7: Car Fueling
- Assignment 8: Collecting Signatures (Covering Segments by Points)
Algorithmic Toolbox part2
- Assignment 9: Maximum Salary (Largest Number)
- Assignment 10: Binary Search
- Assignment 11: Majority Element
- Assignment 12: Improving QuickSort
- Assignment 13: Money Change Again
- Assignment 14: Primitive Calculator
- Assignment 15: Longest Common Subsequence of Two Sequence
- Assignment 16: Partitioning Souvenirs
- Assignment 17: Max Value of Arithmetic Expression
Data Structures
- Assignment 1: Check brackets in the code
- Assignment 2: Stack with maximum
- Assignment 3: Build Heap
- Assignment 4: Parallel Processing
- Assignment 5: Phone Book
- Assignment 6: Chaining Simulation
- Assignment 7: Tree Orders
- Assignment 8: Is it a Binary Search Tree?
- Assignment 9: Is it a Binary Search Tree? Hard version
Algorithms on Graphs
- Assignment 1: Reachability
- Assignment 2: Acyclicity
- Assignment 3: Topological Sort
- Assignment 4: BFS (min number of flight segments)
- Assignment 5: Dijkstra (min cost of a flight)
- Assignment 6: Negative Cycle (detecting anomolies in currency exchange rates)
- Assignment 7: Connecting Points
Algorithms on Strings
- Assignment 1: Construct a Trie from a Collection of Patterns
- Assignment 2: Implement TrieMatching
- Assignment 3: Borrows-Wheeler Transform
- Assignment 4: Reconstruct String from its Burrows-Wheeler Transform
- Assignment 5: Suffix Tree
- Assignment 6: Find all Occurrences of Pattern in String
- Assignment 7: Construct Suffix Array of a Long String
Divide & Conquer, Sorting and Searching, and Randomized Algorithms
- Assignment 1: Integer Multiplication
- Assignment 2: Inversions
- Assignment 3: Quicksort
- Assignment 4: Minimum Cut
Graph Search and Shortest Path
- Assignment 1: Strongly Connected Components
- Assignment 2: Dijkstra's Shortest Path
- Assignment 3: Median Maintenance
- Assignment 4: Two Sum
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
- Assignment 1: Scheduling and Prim's MST Algorithm
- Assignment 2: K-Clustering
- Assignment 3: Huffman Codes and Max Weight Independent Sets
- Assignment 4: Knapsack
Shortest Paths Revisited, NP-Complete Problems
- Assignment 1: All-pairs shortest paths
- Assignment 2: Traveling salesperson problem
- Assignment 3: Traveling salesperson problem Heuristic
- Assignment 4: 2 Sat problem
Requirements:
python3
unittest
To test:
cd [path/to/assignment-number]
python3 tests.py