https://github.com/teivah/algodeck Algo Deck is an Open-Source Collection of +200 Algorithmic Cards to Help you Preparing your Algorithm & Data Structure Interview
Overview
Algo Deck is an open-source collection of +200 algorithmic cards .
It helps you preparing and succeeding in your algorithm & data structure interview . The code examples are in Java.
The topics covered are the following:
Array : reversing an array, finding a pivot, handling a dynamic array, etc.
Bit : operators, bit manipulation, etc.
Complexity : algorithm & data structures complexity
Dynamic Programming : dynamic programming concept
Encoding : encoding theory
General : general knowledge including how to approach a problem or testing a first solution
Graph : A*, Dijkstra, BFS vs DFS, cycles detection, topological sort, etc.
Greedy : greedy algorithms concepts
Hash Table : hashtable data structure
Heap : heap data structure including min-heap/max heap, binary heap use cases, etc.
Linked List : linked list data structure, how to get the middle element, iterate over two lists, doubly linked list, etc.
Math : discrete math
Queue : queue data structure
Recursion : recursion concepts
Sort : sort algorithms including concepts, complexity, use cases, etc.
Stack : stack data structure
String : string permutation, rotation, rabin-karp substring search, etc.
Technique : most important techniques to master to solve algorithmic problems including greedy techniques, runner, sliding window, etc.
Tree : binary tree use cases, binary search tree, 2-3 tree, red-black tree, use cases, etc.
Anki Deck
Anki is a free software (Windows/Mac/Linux/iPhone/Android) which makes remembering things easy. It utilizes spaced repetition which is a proven technique to increase the rate of memorization:
The single biggest change that Anki brings about is that it means memory is no longer a haphazard event, to be left to chance. Rather, it guarantees I will remember something, with minimal effort. That is, Anki makes memory a choice.
Michael A. Nielsen, "Augmenting Long-term Memory"
Thus, using Anki is a great way to prepare your algorithm & data structure interview.
The Anki version (an Anki clone of the cards available in this repo) is available for $14.99:
Cards Index
Array
Bit
Complexity
0/1 Knapsack brute force complexity
0/1 Knapsack memoization complexity
0/1 Knapsack tabulation complexity
Amortized complexity definition
Array complexity: access, search, insert, delete
B-tree complexity: access, insert, delete
BFS and DFS graph traversal time and space complexity
BFS and DFS tree traversal time and space complexity
Big O
Big Omega
Big Theta
Binary heap (min-heap or max-heap) complexity: insert, get min (max), delete min (max)
BST complexity: access, insert, delete
BST delete algo and complexity
Bubble sort complexity and stability
Complexity of a function making multiple recursive subcalls
Complexity to create a trie
Complexity to insert a key in a trie
Complexity to search for a key in a trie
Counting sort complexity, stability, use case
Doubly linked list complexity: access, insert, delete
Hash table complexity: search, insert, delete
Heapsort complexity, stability, use case
Insertion sort complexity, stability, use case
Linked list complexity: access, insert, delete
Mergesort complexity, stability, use case
Quicksort complexity, stability, use case
Radix sort complexity, stability, use case
Recursivity impacts on algorithm complexity
Red-black tree complexity: access, insert, delete
Selection sort complexity
Stack implementations and insert/delete complexity
Time complexity to build a binary heap
Topological sort complexity
Dynamic Programming
Encoding
General
Graph
Greedy
Hash Table
Heap
Linked List
Math
Queue
Recursion
Sort
Bubble sort algorithm
Bubble sort complexity and stability
Counting sort complexity, stability, use case
Counting sort algorithm
Heapsort algorithm
Heapsort complexity, stability, use case
Insertion sort algorithm
Insertion sort complexity, stability, use case
Mergesort algorithm
Mergesort complexity, stability, use case
Quicksort algorithm
Quicksort complexity, stability, use case
Radix sort algorithm
Radix sort complexity, stability, use case
Selection sort algorithm
Selection sort complexity
Shuffling an array
Stack
String
Technique
Tree
2-3 tree
AVL tree
B-tree complexity: access, insert, delete
B-tree: definition and use case
Balanced binary tree definition
Balanced BST use case: B-tree, Red-black tree, AVL tree
BFS and DFS tree traversal time and space complexity
Binary tree BFS traversal
Binary tree definition
Binary tree DFS traversal: in-order, pre-order and post-order
Binary tree: complete
Binary tree: full
Binary tree: perfect
BST complexity: access, insert, delete
BST definition
BST delete algo and complexity
BST insert algo
BST questions prerequisite
Complexity to create a trie
Complexity to insert a key in a trie
Complexity to search for a key in a trie
Given a binary tree, algorithm to populate an array to represent its level-by-level traversal
How to calculate the path number of a node while traversing using DFS?
Min (or max) value in a BST
Red-Black tree
Red-black tree complexity: access, insert, delete
Reverse a binary tree algo
Trie definition, implementation and use case
Why to use BST over hash table