Most known Algorithms and Data Structures implementation with Javascript/TypeScript. All code is covered with tests. List of implemented items below.
Useful topics:
- Bitwise operations
- Bitmasks
Problem solving patterns:
- Frequency counters
- Multiple Pointers
- Sliding window
- Devide and Conquer
- Dynamic programming
- Greedy algorithms
- Backtracking
Algorithms List:
- Greatest common divisor
- Linear Search
- Binary Search
- Naive String Search
- Factorials (recursive and iterative solution)
- Fibonacci (recursive and iterative solution)
- Continuous knapsack problem
- Bubble Sort
- Insertion Sort
- Selection Sort
- Radix Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Timsort
- Topological sort
- Bloom filter
- Depth First Search Inorder
- Depth First Search Preorder
- Depth First Search Postorder
- Breadth-First Search
- Dijkstra algorithm
- Huffman Coding Algorithm
- Kadane's algorithm
- Knuth morris pratt algorithm
- A* algorithm
- Recurrence relations
- Longest increasing subsequence
- Levenshtein distance
- Matrix chain multiplication
- Maximum weight independent set in trees (Независимые множества во взвешенных деревьях)
Data Structures List:
- Array List
- Set
- Stack
- Queue
- Priority Queue
- Linked List
- Doubly Linked List
- Circular doubly linked list
- Binary Tree
- Binary search tree
- AVL tree
- Red-black tree
- Splay tree
- Treap
- B-tree
- Heap
- Hash table
- Weighted Graph
- Unweighted Graph
- Undirected Graph
- Directed Graph
- State machines / finite state machines
Solved problems with explanation:
- Two Number Sum (algoexpert.io)
- Validate subsequence (algoexpert.io)
- Sorted Squared Array (algoexpert.io)
- Tournament winner (algoexpert.io)
- Non constructuble change (algoexpert.io)
- Three numbers sum (algoexpert.io)
- Smallest difference (algoexpert.io)