dsa · medium

Expiring Lease Map

GreyOrangeHash MapDesign

Staff warehouse flavor (dispatcher leases). LeaseMap(ttl): acquire(key, now) true if free or the previous lease expired (now >= expiry). A successful acquire holds until now+ttl (exclusive). release(key) frees immediately. until(key) → current expiry or -1.

Time is an argument — do not read the wall clock.

Fill in the LeaseMap class. The starter already walks ops / args and calls your methods — leave the driver at the bottom as-is. Constructors contribute null; booleans print as true / false.

**Example**

`` LeaseMap(5) → null acquire("a", 0) → true acquire("a", 3) → false until("a") → 5 acquire("a", 5) → true release("a") → null acquire("a", 6) → true ``

Constraints

Calls <= 1000, ttl >= 1

Examples

Example 1

Input:
["LeaseMap","acquire","acquire","until","acquire","release","acquire"]
[[5],["a",0],["a",3],["a"],["a",5],["a"],["a",6]]

Expected:
[null,true,false,5,true,null,true]

Open in the Dojo editor