You only have free questions left (including this one).
But it doesn't have to end here! Sign up for the 7-day coding interview crash course and you'll get a free Interview Cake problem every week.
You're in!
You want to be able to access the largest element in a stack.
You've already implemented this Stackclass:
class Stack
{
// initialize an empty array to hold our stack items
private $items = [];
// push a new item onto the stack
public function push($item)
{
$this->items[] = $item;
}
// remove and return the last item
public function pop()
{
// if the stack is empty, return null
// (it would also be reasonable to throw an exception)
if (!count($this->items)) {
return null;
}
return array_pop($this->items);
}
// return the last item without removing it
public function peek()
{
if (!count($this->items)) {
return null;
}
return $this->items[count($this->items) - 1];
}
}
Use yourStackclass to implement a newclassMaxStack with a methodgetMax that returns the largest element in the stack.getMax should not remove the item.
Your stacks will contain only integers.
What if we push several items in increasing numeric order (like 1, 2, 3, 4...), so that there is a new max after each push? What if we then pop each of these items off, so that there is a new max after each pop? Your algorithm shouldn't pay a steep cost in these edge cases.
You should be able to get a runtime of for push, pop, and getMax.
Start your free trial!
Log in or sign up with one click to get immediate access to free mock interview questions
Actually, we don't support password-based login. Never have. Just the OAuth methods above. Why?
It's easy and quick. No "reset password" flow. No password to forget.
It lets us avoid storing passwords that hackers could access and use to try to log into our users' email or bank accounts.
It makes it harder for one person to share a paid Interview Cake account with multiple people.
“I was really hoping to get my money back from you for not getting an offer from a company, but I ended up getting an offer from Google after practicing with your platform. Thanks for the help!!
—
Adam