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

目录

 

 

问题描述

举例说明

限制

一点感想


 

问题描述

 

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 poptop 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);

唉,把我蠢得呀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值