【Leetcote&感想】155. Min Stack(无实现)

    技术2022-07-31  74

    目录

     

     

    问题描述

    举例说明

    限制

    一点感想


     

    问题描述

     

    Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

    push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() -- Get the top element.getMin() -- Retrieve the minimum element in the stack.

    设计一个在固定时间内支持push,pop,top和检索最小元素的栈。

    push(x) -- 将元素x推入栈pop() -- 删除栈顶元素top() -- 得到栈顶元素getMin() -- 在栈中检索最小元素

    举例说明

     

    Input ["MinStack","push","push","push","getMin","pop","top","getMin"] [[],[-2],[0],[-3],[],[],[],[]] Output [null,null,null,null,-3,null,0,-2] Explanation MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); // return -3 minStack.pop(); minStack.top(); // return 0 minStack.getMin(); // return -2

     

    限制

     

    Methods pop, top and getMin operations will always be called on non-empty stacks.

    方法pop, top和getMin将由非空栈调用。

     

    一点感想

     

           这道题没啥难的,但我耗得时间很长。原因就是举例中返回的是[null,null,null,null,-3,null,0,-2],我以为就是最后得到的数组长度与方法执行数相等,无形中走偏了方向,还增加了题目难度。麻烦的是null是用于指针,表示不指向任何地址,它套用在整形上等于赋值0,但是0在这个题目中也是可赋值之一,所以就无法区分数组中哪个元素是未初始化哪个元素值是0,那就更不用谈删除栈顶元素了。后来才意识到,题目想要的就是栈,不带null的栈。所以测试下来应该是这样的。

    MinStack *minStack = minStackCreate(); minStackPush(minStack,-2); minStackPush(minStack,0); minStackPush(minStack,-3); StringStack(minStack);//toString printf("%d\n",minStackGetMin(minStack)); // return -3 minStackPop(minStack); printf("%d\n",minStackTop(minStack)); // return 0 StringStack(minStack);//toString minStackFree(minStack);

    唉,把我蠢得呀

    Processed: 0.009, SQL: 9