tvl-depot/scratch/deepmind/part_two
William Carroll ae9e83f5d7 Solve InterviewCake.com's mesh-message problem
Write a function that returns the shortest path between nodes A and B in an
unweighted graph.

I know two algorithms for finding the shortest path in a *weighted* graph:
- Use a heap as a priority queue instead of the regular queue that you would use
  when doing a BFT. This is called Dijkstra's algorithm. You can also use
  Dijkstra's algorithm in an unweight graph by imaginging that all of the
  weights on the edges are the same value (e.g. 1).
- Map the weighted graph into an unweighted graph by inserting N nodes between
  each node, X and Y, where N is equal to the weight of the edge between X and
  Y. After you map the weighted graph into an unweighted graph, perform a BFT
  from A to B. A BFT will always find the shortest path between nodes A and B in
  an unweighted graph.

I had forgotten that a BFT in an unweighted graph will always return the
shortest path between two nodes. I learned two things from InterviewCake.com's
solution:
1. I remembered that a BFT in an unweighted graph will return the shortest
   path (if one exists).
2. I learned to use a dictionary to store the edge information and then
   back-tracking to reconstruct the shortest path.
2020-03-20 16:49:49 +00:00
..
misc Tidy up structure of briefcase 2020-02-12 16:58:29 +00:00
.envrc Tidy up structure of briefcase 2020-02-12 16:58:29 +00:00
balanced-binary-tree.py Solve InterviewCake's balanced-binary-tree problem 2020-03-14 12:48:37 +00:00
bst-checker.py Solve InterviewCake's bst-checker problem 2020-03-15 23:09:29 +00:00
cafe-order-checker.py Solve InterviewCake's cafe-order-checker problem 2020-02-20 15:20:58 +00:00
delete-node.py Tidy up structure of briefcase 2020-02-12 16:58:29 +00:00
find-duplicate-optimize-for-space.ts WIP: Partially solve InterviewCake's find duplicate number 2020-03-10 15:01:30 +00:00
find-rotation-point.ts Solve InterviewCake's "find rotation point" problem 2020-03-10 13:27:11 +00:00
graph-coloring.ts Solve InterviewCake's graph-coloring problem 2020-03-19 12:31:24 +00:00
highest-product-of-3.py Solve InterviewCake's highest-product-of-3 2020-03-01 22:32:25 +00:00
inflight-entertainment.ts Solve InterviewCake's inflight-entertainment problem 2020-02-21 11:30:01 +00:00
merge-sorted-arrays.ts Solve InterviewCake's merge sorted arrays question 2020-02-19 16:02:38 +00:00
merging-ranges.py Solve merging-ranges 2020-02-13 14:52:20 +00:00
mesh-message.py Solve InterviewCake.com's mesh-message problem 2020-03-20 16:49:49 +00:00
package-lock.json Tidy up structure of briefcase 2020-02-12 16:58:29 +00:00
package.json Tidy up structure of briefcase 2020-02-12 16:58:29 +00:00
permutation-palindrome.py Solve InterviewCake permutation-palindrome problem 2020-03-01 22:32:24 +00:00
product-of-other-numbers.py Solve InterviewCake's product-of-other-numbers 2020-03-02 16:45:15 +00:00
reverse-string-in-place.ts Tidy up structure of briefcase 2020-02-12 16:58:29 +00:00
reverse-words.py Solve bonus part of reverse-words 2020-02-19 15:01:42 +00:00
second-largest-item-in-bst.ts Solve InterviewCake's second-largest-item-in-bst 2020-03-16 11:45:34 +00:00
shell.nix Add default value for pkgs parameter in shell.nix 2020-03-13 16:52:40 +00:00
shuffle.py Implement an in-place shuffling algorithm 2020-03-06 18:45:55 +00:00
stock-price.py Solve InterviewCake's stock-price problem 2020-03-01 22:32:25 +00:00
todo.org Solve InterviewCake.com's mesh-message problem 2020-03-20 16:49:49 +00:00
top-scores.py Solve InterviewCake's top-scores 2020-03-01 22:32:24 +00:00
top-scores.ts Solve InterviewCake's top-scores problem 2020-03-13 16:51:38 +00:00
tsconfig.json Solve InterviewCake's graph-coloring problem 2020-03-19 12:31:24 +00:00
word-cloud.py Solve InterviewCake's word-cloud problem 2020-03-01 22:32:24 +00:00