Calculate price of parking from parking start end time prices - GoHired
http://www.gohired.in/2016/01/05/calculate-price-of-parking-from-parking-start-end-time-prices/
Read full article from Calculate price of parking from parking start end time prices - GoHired
http://www.gohired.in/2016/01/05/calculate-price-of-parking-from-parking-start-end-time-prices/
1 Given a price rules of parking and start time and end time of parking. Calculate the price (Below is the table of price rule) Come up with data structure you can store these price rules PriceRule
Price Rules:
On Weekday On Weekend
Hours Price Hours Price
0 – 2 $5 0 – 2 $8
2 – 6 $10 2 – 6 $13
6 – 12 $15 6 – 12 $18
12 – 24 $20 12 – 24 $25
2 The interviewer asked to come up with an architecture for a system which shows the parking spaces available near customers' location in a mobile app.
Lets start with 1). What is correct way to store Prices.
In order to think the solution we need to find the way input will be given, Input will be number of hrs like 3 hrs of parking or 6 hrs of parking. So we can find the charges for such parking directly.
Solution 1 : we can store this input in 2 hashmaps one for weekday and one for weekend.
Hashmap will be <int, int> we can store {{2,5},{6,10},{12,15},{24,20}}.
Once we get input 3 hrs.
Search for first key greater than input(3) which is 6, so it will be in range of 2-6 and charge accordingly.
( Obviously as per day, search for which Hashmap to take, week or weekend)
Space Complexity : O(n)
Time Complexity : O(n) -> as searching key in sequence.
logN - >using treemap
logN - >using treemap
Solution 2 : Can we think for similar solution so that search complexity we can improve, as in solution 1 we are not utilizing Hashmap's search complexity which is O(1).
Then there are two solution : Use Interval Tree or BST.
Interval Tree : In node keep 5 parameters
Least Value, Most Value, Price, LPtr, RPtr
Interval tree will be balanced same as BST.
We can use BST as ranges are not overlapping.
BST : Store 4 parameters : Most Value, Price, LPtr, RPtr.
We can search for parking hrs will fall in which range with same way we used in Hashmap.
But here in Interval Tree or BST
Space Complexity : O(n)
Time Complexity : O(log n)
Read full article from Calculate price of parking from parking start end time prices - GoHired