20、包含min函数的栈
来源:互联网 发布:mac查看cad图纸的软件 编辑:程序博客网 时间:2024/05/18 14:12
题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
时间限制:1秒 空间限制:32768K
Ⅰ我的方法(用vector实现栈)
思路:题目比较简单,用vector实现栈的功能,我用的方法在弹出时,用到了迭代器来删除vector里的最后一个元素,it = stack.end()-1 指向最后一个元素,然后erase.
代码:
class Solution {public: void push(int value) { stack.push_back(value); } void pop() { if(stack.empty()) return; vector<int>::iterator it = stack.end()-1; stack.erase(it); } int top() { if(stack.empty()) return 0; return stack[stack.size()-1]; } int min() { if(stack.empty()) return 0; int minnum = stack[0]; for(int i = 0;i < stack.size();i++){ if(stack[i] < minnum) minnum = stack[i]; } return minnum; }private: vector<int> stack;};
Ⅱ 用stack来实现(应用辅助栈存放最小值)
思路:minstack最上面的值永远是最小值
代码:
class Solution {public: void push(int value) { datastack.push(value); if(minstack.empty()) minstack.push(value); else{ int min = minstack.top(); if(value <= min) minstack.push(value); } } void pop() { if(datastack.top()==minstack.top()) minstack.pop(); datastack.pop(); } int top() { return datastack.top(); } int min() { return minstack.top(); }private: stack<int> datastack,minstack;};
阅读全文
0 0
- 20、包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min 函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 上传问题之AttributeError: '_socketobject' object has no attribute 'set_tlsext_host_name'
- 关于近些日子的一些问题小结
- 08关联查询(多表查询)
- FPGA学习(第7节)-Verilog状态机(状态按条件切换)
- 软件测试(Software testing)
- 20、包含min函数的栈
- Oracle存储过程
- 线程互斥与线程同步
- Spring的bean的继承
- 09存储过程
- 用C语言实现通讯录文件存储的版本
- Ant打包脚本
- 10触发器
- 杰出人才不是通"培养"出来的