[Twitter] Max Stack
1251 단어 interview
Design a max stack using one stack. ?
One stack? I think it is two stacks.
class MaxMinStack<T>
{
private Stack<T> data;
private Stack<T> max;
private Stack<T> min;
private Comparator<T> comparator;
public MaxMinStack<T>(Comparator comparator)
{
Validate.notNull(comparator);
data = new Stack<>();
min = new Stack<>();
max = new Stack<>();
this.comparator = comparator;
}
public void push(T t)
{
Validate.notNull(t);
data.push(t);
if (max.empty() || comparator.compare(t, max.peek()) >= 0)
{
max.push(t);
}
if (min.empty() || comparator.compare(t, min.peek()) <= 0)
{
min.push(t);
}
}
public T pop()
{
if (data.empty())
return null;
T t = data.pop();
if (comparator.compare(t, max.peek()) == 0)
max.pop();
if (comparator.compare(t, max.peek()) == 0)
min.pop();
return t;
}
public T max()
{
return max.empty() ? null : max.peek();
}
public T min()
{
return min.empty() ? null : min.peek();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
알고리즘 1000 개 노크 #2. Longest common substringsProblem Solution DP (다이나믹 프로그래밍) 중에서 고전적인 문제입니다. 두 문자열을 S1과 S2, 각각의 길이를 M, N으로 설정합니다. 총당으로 S1에서 모든 부분 문자열을 추출하고, 그것들이 S2...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.