Approach 1: Simulation

Intuition and Algorithm

Let's try to simulate giving change to each customer buying lemonade. Initially, we start with no five dollar bills, and no ten dollar bills.

  • If a customer brings a $5 bill, then we take it.

  • If a customer brings a $10 bill, we must return a five dollar bill. If we don't have a five dollar bill, the answer is False, since we can't make correct change.

  • If a customer brings a $20 bill, we must return $15.

    • If we have a $10 and a $5, then we always prefer giving change in that, because it is strictly worse for making change than three $5 bills.

    • Otherwise, if we have three $5 bills, then we'll give that.

    • Otherwise, we won't be able to give $15 in change, and the answer is False.

Complexity Analysis

  • Time Complexity: , where is the length of bills.

  • Space Complexity: .

Analysis written by: @awice.