インタビューで最も頻繁に追加されたアイテムをポップするスタックを実装するように依頼されました。私は彼に以下の答えを与えましたが、彼は解決策に満足していませんでした.
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
}
}
誰でも正しいアプローチで私を助けることができますか?