tvl-depot/scratch
William Carroll 9549dbb266 Update BFS impls
I've subtly been implementing breadth-first traversals in graphs
incorrectly. The change is subtle, but updating `seen` needs to happen
immediately after queuing an item.

The results will remain the same, but the runtimes will differ dramatically. I
didn't notice this until I attempted to complete LeetCode's "count islands"
challenge, and LeetCode rejected my solution because it could not finish before
timing out. After looking at other candidates' solutions and comparing them to
mine, I couldn't see any difference... except for this subtle difference.

This SO answer provides a helpful explanation:
https://stackoverflow.com/questions/45623722/marking-node-as-visited-on-bfs-when-dequeuing

The take-away lesson here is to always call `seen.add(..)` immediately after
enqueuing.
2020-11-23 23:21:20 +00:00
..
advent-of-code-2019 Move AOC into //scratch 2020-07-20 10:06:40 +01:00
crack_the_coding_interview Tidy up structure of briefcase 2020-02-12 16:58:29 +00:00
data_structures_and_algorithms Impl part 3/3 for Memo 2020-07-01 15:13:56 +01:00
deepmind Drop support for dir-locals.nix, <nixpkgs>, etc. 2020-08-20 11:26:32 +01:00
facebook Update BFS impls 2020-11-23 23:21:20 +00:00
groceries Ignore comments in output for grocery export 2020-10-03 11:00:11 +01:00
habit-screens Style habit screen to accommodate footer 2020-11-12 11:19:30 +00:00
haskell-programming-from-first-principles Drop support for dir-locals.nix, <nixpkgs>, etc. 2020-08-20 11:26:32 +01:00
README.md Tidy up structure of briefcase 2020-02-12 16:58:29 +00:00

Scratch

The purpose of the scratch directory is to host practice exercises. Practice encompasses things like working on data structures and algorithms problems for upcoming coding interviews or general aptitude as well as writing code snippets to help me learn a new programming language or understand an unfamiliar concept.