549e56186b
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.
2.2 KiB
2.2 KiB
- Array and string manipulation
- Hashing and hash tables
- Greedy Algorithms
- Sorting, searching, and logarithms
- Trees and graphs
- Dynamic programming and recursion
- Queues and stacks
- Linked lists
- System design
- General programming
- Bit manipulation
- Combinatorics, probability, and other math
- JavaScript
- Coding interview tips