包含min函数的栈

包含min函数的栈

http://www.nowcoder.com/questionTerminal/4c776177d2c04c2494f2555c9fcc1e49

算是单调栈的应用?

  1. 用vector模拟栈

  2. cur表示当前栈顶的位置

  3. minn数组中每个位置保存前面加进来的数中的最小值,只要push数的时候维护一下就好了

    class Solution {
    public:
     vector<int> minn;
     int cur = 0;
     vector<int> stack;
    
     void push(int value) {
         stack.push_back(value);
         cur++;
         if(cur == 1) minn.push_back(value);
         else minn[cur-1] = minn[cur-2] > value ? value : minn[cur-2];
     }
     void pop() {
         if(cur == 0) return ;
         cur--;
         stack.pop_back();
         minn.pop_back();
     }
     int top() {
         return stack[cur-1];
     }
     int min() {
         return minn[cur-1];
     }
    };
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 19:05
面试官_我太想进步了:混学生会的,难怪简历这么水
点赞 评论 收藏
分享
已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务