I chose javascript as the language for all this brushing up (no need to manage memory, and I can focus on the algo)
It's a big list, but it's a traversal of the CS engineering domain that makes sense to me, and it's only a fraction of the expected knowledge for that kind of interview.
𝗗𝗮𝘆 01
* Backtracking - know how to solve 1 problem (Knight's tour)
* Tree - implement BST
* Tree traversal - implement DFS, BFS & DFS iterative
𝗗𝗮𝘆 02
* Quicksort - know how to implement
* Mergesort - know how to implement
* Binary search - know how to implement
* Min/Max Heap (priority queue) - know how to implement
𝗗𝗮𝘆 03
* Graph - implement adjacency list
* Graph traversal - implement DFS, BFS & DFS iterative
* Graph algo - implement "Prim Minimum Spanning Tree"
* Graph algo - Implement "Detect Cycles algo"
𝗗𝗮𝘆 04
* Graph algo - Implement "Detect Connected Components" algo
* Graph algo - Implement "Lowest Common Ancestor" algo
* Graph algo - Implement Djikstra single shortest path algo
𝗗𝗮𝘆 05
* Sets - Determine all subsets of a set
* Sets - Determine Maximum consecutive subarray sum
* Sets - Determine 2 sets intersection
𝗗𝗮𝘆 06
* String - Implement Levensthein Edit distance
* String - Implement Polynomial Hash
* String - Determine all substrings
* String - Find anagrams
𝗗𝗮𝘆 07
* String - Implement KNP algorithm for pattern matching
* Basic DS - Implement Queue, Stack, Dynamic array, Linked list absolutely cold
----
I chose javascript as the language for all this brushing up (no need to manage memory, and I can focus on the algo)
It's a big list, but it's a traversal of the CS engineering domain that makes sense to me, and it's only a fraction of the expected knowledge for that kind of interview.
----
Edit: I pushed some of the code of this list on GH here: https://github.com/netgusto/brushup
I struggle to implement each concept in the smallest, simplest way possible. I'll keep adding code as I write it.