Lemonade Change Lab

60.0% Acceptance

In this lab, you will be working on a problem related to a lemonade stand where each lemonade costs $5. Customers are standing in a queue to buy from you and order one at a time (in the order specified by bills). Each customer will only buy one lemonade and pay with either a $5, $10, or $20 bill. Your task is to provide the correct change to each customer so that the net transaction is that the customer pays $5.

At the beginning of the day, you have no change in hand. You are given an integer array bills where bills[i] is the bill the ith customer pays. You need to return true if you can provide every customer with the correct change, or false otherwise.


Example 1:

Input: bills = [5,5,5,10,20] Output: true


  • From the first 3 customers, we collect three $5 bills in order.
  • From the fourth customer, we collect a $10 bill and give back a $5.
  • From the fifth customer, we give a $10 bill and a $5 bill.
  • Since all customers got the correct change, we output true.

Example 2:

Input: bills = [5,5,10,10,20] Output: false


  • From the first two customers in order, we collect two $5 bills.
  • For the next two customers in order, we collect a $10 bill and give back a $5 bill.
  • For the last customer, we cannot give the change of $15 back because we only have two $10 bills.
  • Since not every customer received the correct change, the answer is false.

Lab Challenges

  1. Challenge 1: Write a function lemonadeChange() that takes an array bills as a parameter and returns a boolean value whether you can provide every customer with the correct change or not.
  2. Challenge 2: Export the lemonadeChange() function.