我被要求实现一个堆栈,该堆栈弹出面试中最常添加的项目。我给了他以下答案,但他对解决方案不满意。
class stack
{
// Map of value and count
map<int,int> Cntmap;
public:
void push(int val)
{
// Find val in map
// if found then increment map count
// else insert a pair (val,1)
}
int pop( )
{
// Find the Key in Cntmap with max value
// using std::max_element
// Decrement the Cntmap count for the popped val
}
}
任何人都可以帮助我正确的方法吗?