Leetcode 2161 Solution

This article provides solution to leetcode question 2161 (stock-price-fluctuation)

https://leetcode.com/problems/stock-price-fluctuation

Solution

class StockPrice { map<int, int> price_map; set<pair<int, int>> price_set;
public: StockPrice() {
}
void update(int timestamp, int price) { auto it = price_map.find(timestamp); if (it != price_map.end()) { int old_price = it->second; price_set.erase(make_pair(old_price, timestamp)); }
price_map[timestamp] = price; price_set.insert(make_pair(price, timestamp)); }
int current() { auto it = --price_map.end(); return it->second; }
int maximum() { auto it = --price_set.end(); return it->first; }
int minimum() { auto it = price_set.begin(); return it->first; } };
/** * Your StockPrice object will be instantiated and called as such: * StockPrice* obj = new StockPrice(); * obj->update(timestamp,price); * int param_2 = obj->current(); * int param_3 = obj->maximum(); * int param_4 = obj->minimum(); */