Algorithms questions Template

  1. Ask clarifying questions. (5 min)
    1. Can the inputs be null or empty?
    2. Can we fail to calculate the output? If so, what should we do?
    3. What are the sizes of inputs? (You can’t run an exponential time solution on input > 40)
    4. How long should this algorithm take? How much memory should it take?
  2. High level overview (5 min)
    1. Describe the algorithm(s) and data structure(s) you’ll use for this question.
    2. Talk about what steps you’ll go through to do so.
    3. Discuss why you made these choices.
  3. Implementation (30 min)
    1. Implement the steps outlined
    2. Explain what each piece does
    3. Write clean code.
  4. Review (5 min)
    1. Come up with small test cases.
    2. Make sure to test and discuss pitfalls with implementation.