剑指offer_20_包含min函数的栈
2018-03-06 11:46
387 查看
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。#include <iostream>
using namespace std;
class Solution {
public:
struct ListNode{
struct ListNode*next;
int val;
ListNode(int x, ListNode*p) :next(p), val(x)
{}
};
ListNode* head = NULL;
void push(int value) {
head = new ListNode(value,head);
}
void pop() {
ListNode *temp =head;
if (head != NULL){
head = head->next;
delete temp;
}
}
int top() {
if (head == NULL)return 0;
return head->val;
}
int min() {
if (head == NULL)return -1;
ListNode* p = head, *pmin = head;
while (p != NULL){
if (p->val < pmin->val)pmin = p;
p = p->next;
}
return pmin->val;
}
};
int main()
{
Solution stk;
for (int i = 0; i < 10; i++)
{
stk.push(i);
}
stk.pop();
stk.pop();
stk.pop();
cout << stk.min()<<endl;
cout << "end" << endl;
system("pause");
}
辅助栈解法:
总结:
1.普通思路是,每调用一次min函数就遍历栈查找最小元素。
2.利用一个辅助栈高效实现,辅助栈就是在原栈push的时候存下的当前最小值。但并不那么高效,无非是空间换时间,
相关文章推荐
- 剑指Offer面试题20顺时针打印矩阵,面试题21包含min函数的栈
- (C++)剑指offer-20:包含min函数的栈(举例让抽象具体化)
- 剑指offer-20.包含min函数的栈
- 牛客网-剑指offer-20-包含min函数的栈
- 剑指Offer_20_包含min函数的栈
- 剑指offer——20.包含min函数的栈
- 【剑指offer】20包含min函数的栈
- 剑指offer 20 包含min函数的栈
- 【剑指Offer面试编程题】题目1522:包含min函数的栈--九度OJ
- 剑指offer 21题 【举例让抽象具体化】包含min函数的栈
- 牛客网剑指offer-包含min函数的栈
- 【剑指offer】包含min函数的栈
- 剑指offer(22):包含min函数的栈
- 剑指offer_面试题21_包含min函数的栈
- 剑指offer-包含min函数的栈
- 【剑指offer】数据结构 ——包含min函数的栈(C++)
- 【剑指Offer面试编程题】题目1522:包含min函数的栈--九度OJ
- 【剑指offer】包含min函数的栈
- 剑指Offer 21:包含min函数的栈
- 剑指offer--包含min函数的栈