225. 用队列实现栈
分析
每次访问栈顶元素 top()
或弹出栈顶元素 pop()
时,先将队列中的前 size - 1
个元素重新入队,从而把「最后加入的元素」移动到队头,模拟栈顶
push()
:O(1)
pop()
:O(n)
top()
:O(n)
empty()
:O(1)
时间复杂度
- 排序复杂度:
O(nlogn)
- 三重循环复杂度:外层循环
O(n)
,内层双指针O(n)
,总复杂度为O(n^2)
总时间复杂度 O(n^2)
C++代码
|
|
每次访问栈顶元素 top()
或弹出栈顶元素 pop()
时,先将队列中的前 size - 1
个元素重新入队,从而把「最后加入的元素」移动到队头,模拟栈顶
push()
: O(1)
pop()
: O(n)
top()
: O(n)
empty()
: O(1)
O(nlogn)
O(n)
,内层双指针 O(n)
,总复杂度为 O(n^2)
总时间复杂度 O(n^2)
|
|