zoukankan      html  css  js  c++  java
  • leetcode155-最小栈

    typedef struct {
        int *top;
        int *base;
        int statckSize;
        
    } MinStack;
    
    /** initialize your data structure here. */
    MinStack* minStackCreate(int maxSize) {
        MinStack *stack = (MinStack*)malloc(sizeof(MinStack));
        stack->base = (int*)malloc(maxSize*sizeof(int));
        stack->top = stack->base;
        stack->statckSize = maxSize;
        return stack;
    }
    
    void minStackPush(MinStack* obj, int x) {
        if(obj->top - obj->base <= obj->statckSize)
        {
            *(obj->top) = x;
            obj->top++;
        }
        else
        {
            exit(1);
        }
    }
    
    void minStackPop(MinStack* obj) {
        if(obj->top != obj->base)
        {
            obj->top--;
        }
        else
        {
            exit(1);
        }
    }
    
    int minStackTop(MinStack* obj) {
        return *(obj->top);
    }
    
    int minStackGetMin(MinStack* obj) {
        int min;
        int *top = obj->top;
        int *base = obj->base;
        min = *top;
        while((top--) != base)
        {
            if(*top < min)
                min = *top;
        }
        return min;
    }
    
    void minStackFree(MinStack* obj) {
        free(obj->base);
        free(obj);
    }

    设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。

    • push(x) -- 将元素 x 推入栈中。
    • pop() -- 删除栈顶的元素。
    • top() -- 获取栈顶元素。
    • getMin() -- 检索栈中的最小元素。

    示例:

    MinStack minStack = new MinStack();
    minStack.push(-2);
    minStack.push(0);
    minStack.push(-3);
    minStack.getMin();   --> 返回 -3.
    minStack.pop();
    minStack.top();      --> 返回 0.
    minStack.getMin();   --> 返回 -2.
  • 相关阅读:
    attempted to return null from a method with a primitive return type (Double).
    window7 虚拟机安装
    DB 与oracle 批量新增的写法
    oracle 修改表
    备份还原oracle数据库
    oracle数据库的字符集更改
    IMP-00013
    oracle创建用户授权权限
    java中添加定时任务
    程序在运行过程中变量的保存位置与生命周期
  • 原文地址:https://www.cnblogs.com/xinfenglee/p/10050611.html
Copyright © 2011-2022 走看看