18.包含min函数的栈
2016-05-05 19:33
246 查看
包含min函数的栈
参与人数:3793时间限制:1秒空间限制:32768K
本题知识点: 栈
算法知识视频讲解
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
剑指offer上的例子讲解的非常精彩。
在线编译时遇到错误:
参与人数:3793时间限制:1秒空间限制:32768K
本题知识点: 栈
算法知识视频讲解
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。剑指offer上的例子讲解的非常精彩。
在线编译时遇到错误:
error: control may reach end of non-void function [-Werror,-Wreturn-type]意为无法找到non-void function的返回值。
// 17.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stack> using namespace::std; class Solution { public: stack<int> dataStack; stack<int> minStack; int minVal; void push(int value) { dataStack.push(value); if (minStack.empty()) { minStack.push(value); minVal = value; } else { int minNow = minStack.top(); if (minNow >= value) { minStack.push(value); minVal = value; } else { minStack.push(minNow); } } } void pop() { if (!dataStack.empty()) { dataStack.pop(); } if (!minStack.empty()) { minVal = minStack.top(); minStack.pop(); } } int top() { if (!dataStack.empty()) { return dataStack.top(); } } int min() { return minVal; } }; int _tmain(int argc, _TCHAR* argv[]) { Solution s; s.push(3); int n = s.min(); s.push(4); n = s.min(); s.push(2); n = s.min(); s.push(3); n = s.min(); s.pop(); n = s.min(); s.pop(); n = s.min(); s.pop(); n = s.min(); s.push(0); n = s.min(); return 0; }
相关文章推荐
- js遍历函数
- 一个简单的Android聊天室
- 英文经典语录
- 归并排序
- Android Intent调用大全、系统自带Intent调用大全
- windows下opencv3.1 (3.0) 安装opencv_contrib常见问题总结
- 算法练习-归并排序
- leetcode 206 Reverse Linked List C++
- HDU 3466 Proud Merchants (01背包)
- 4. Median of Two Sorted Arrays
- MMDrawerController,最简代码实现抽屉效果
- 标准C++中的string类的用法总结
- http报文格式和post, get方式区别与误区(很不错哦)
- 匈牙利算法解决指派问题清晰流程
- android设计模式——建造者模式
- 将空格用%20替换
- 优先队列+括号配对 51Nod1476 括号序列的最小代价
- 线程间通信:生产者消费者(等待唤醒机制)
- 使用Unity3D 自主实战开发的赛车游戏实例,关键点记录 (六)之自动寻路及优化
- 浅谈锚链接(native 嵌套 h5)