Solve InterviewCake's product-of-other-numbers

This problem challenged me: without using division, write a function that maps a
list of integers into a list of the product of every integer in the list except
for the integer at that index.

This was another greedy algorithm. The take-away is to first solve the problem
using brute force; this yields an algorithm with O(n*(n-1)) time
complexity. Instead of a quadratic time complexity, a linear time complexity can
be achieved my iterating over the list of integers twice:
1. Compute the products of every number to the left of the current number.
2. Compute the products of every number to the right of the current number.

Finally, iterate over each of these and compute lhs * rhs. Even though I've
solved this problem before, I used InterviewCake's hints because I was stuck
without them.

I should revisit this problem in a few weeks.
This commit is contained in:
William Carroll 2020-03-02 16:45:15 +00:00
parent 22d70b52c9
commit 549e56186b
2 changed files with 69 additions and 1 deletions

View file

@ -12,7 +12,7 @@
* Greedy Algorithms
** DONE Apple Stocks
** DONE Highest Product of 3
** TODO Product of All Other Numbers
** DONE Product of All Other Numbers
** TODO Cafe Order Checker
** TODO In-Place Shuffle
* Sorting, searching, and logarithms