lintcode12 带最小值操作的栈
生活随笔
收集整理的這篇文章主要介紹了
lintcode12 带最小值操作的栈
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實現一個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。
你實現的棧將支持push,pop?和?min?操作,所有操作要求都在O(1)時間內完成。
建一個棧helpStack,用來存放從開始到目前位置的最小值,
1 /** 2 * lintcode12:帶最小值操作的棧 3 * 狗剩的美麗家園 4 * 2017年12月4日15:33:23 5 */ 6 7 class MinStack { 8 public: 9 stack<int> mainStack; 10 stack<int> helpStack; 11 MinStack() { 12 // do initialization if necessary 13 } 14 15 void push(int number) { 16 // write your code here 17 int top; 18 mainStack.push(number); 19 20 if (!helpStack.empty()) { 21 top = helpStack.top(); 22 } else { 23 top = number; 24 } 25 26 if (number > top) { 27 helpStack.push(top); 28 } else { 29 helpStack.push(number); 30 } 31 } 32 33 int pop() { 34 // write your code here 35 if (!mainStack.empty()) { 36 int data = mainStack.top(); 37 mainStack.pop(); 38 helpStack.pop(); 39 return data; 40 } 41 } 42 43 int min() { 44 // write your code here 45 if (!helpStack.empty()) { 46 int data = helpStack.top(); 47 return data; 48 } 49 } 50 };?
轉載于:https://www.cnblogs.com/gousheng/p/7977492.html
總結
以上是生活随笔為你收集整理的lintcode12 带最小值操作的栈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL2012 之 创建备份计划
- 下一篇: LwIP Application Dev