LeetCode Min Stack
来源:互联网 发布:网络诈骗超过2000 编辑:程序博客网 时间:2024/06/05 08:29
原题描述:
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
- push(x) -- Push element x onto stack.
- pop() -- Removes the element on top of the stack.
- top() -- Get the top element.
- getMin() -- Retrieve the minimum element in the stack.
NOTE:栈中的最小元素要在O(1)时间内找到,所以可以用两个栈来实现,一个站存放所有的元素,另一个栈存放最小值,这样做空间和时间复杂度是最小的。下面是ac的代码:
class MinStack {private: stack<int> elements; stack<int> mins;public: void push(int x) { if (elements.empty() || mins.top() >= x) mins.push(x); elements.push(x); } void pop() { if (elements.empty()) return; if (elements.top() == mins.top()) { mins.pop(); } elements.pop(); } int top() { return elements.top(); } int getMin() { return mins.top(); }};
class MinStack {public: class Node { public: int val; int m; Node *next; Node (int val, int m) { this->val = val; this->m = m; next = NULL; } }; Node *s; MinStack () { s = NULL; } void push(int x) { Node *n = new Node(x, x); if (!s) { s = n; } else { if (n->m > s->m) n->m = s->m; n->next = s; s = n; } } void pop() { if (s) { Node *t = s; s = s->next; delete(t); } } int top() { return s->val; } int getMin() { return s->m; }};
不知道用C++实现除了第一段代码有没有不超内存的方法?或者其他的思路!
另外还有一些收获:
1、C++中定义类时只能定义指向自己的指针,不能直接指向自己
2、struct和class唯一的不同是默认情况下,struct的访问权限是public,而class是private
0 0
- LeetCode[stack]: Min Stack
- [leetcode][stack] Min Stack
- 【Leetcode】Min Stack
- Leetcode: Min Stack
- leetcode Min stack
- Min Stack -- LeetCode
- Leetcode: Min Stack
- 【LeetCode】Min Stack
- leetcode Min Stack
- leetcode--Min Stack
- [Leetcode]Min stack
- leetcode:Min Stack
- leetcode 之 Min Stack
- leetcode Min Stack
- LeetCode(155) Min Stack
- [LeetCode]Min Stack
- leetcode:Min Stack
- leetcode - Min Stack
- Linux下php+mysql+nginx编译搭建(三)
- SQL中EXISTS的用法
- 织梦给栏目加字段(加缩略图)
- 上海建筑设计招聘需要哪些技能
- IOS开发之UI——UIImage缩放
- LeetCode Min Stack
- oracle数据文件内部BLOCK结构详解
- Boost学习------函数对象
- Ubuntu 下 Virtual Judge 环境搭建与配置
- 25 个免费简洁的 WordPress 主题和布局插件
- 自定义Image自动切换图像控件
- Android实例demo4之标题、线程发短信
- 改变屏幕显示方向(同时切换横竖屏的图片)
- 解决XAMPP搭建织梦(dedecms)登录后台空白