LeetCode篇之栈:155-->最小栈

  • 题目:
  • 解题思路:
  • 源码:
  • 踩坑点:

题目:

解题思路:

源码:

typedef struct Linknode{int data;int min;struct Linknode *next;
} MinStack;/** initialize your data structure here. */MinStack* minStackCreate() {MinStack *stack = (MinStack *)malloc(sizeof(MinStack));if(stack == false)return false;stack->next = NULL;stack->min = INT_MIN;return stack;
}void minStackPush(MinStack* obj, int x) {MinStack *s = (MinStack *)malloc(sizeof(MinStack));s->data = x;if(obj->next == NULL|| obj->next->min >= x)s->min = x;elses->min = obj->next->min;s->next = obj->next;obj->next = s;
}void minStackPop(MinStack* obj) {if(obj->next == NULL)return ;else{obj->next = obj->next->next;}
}int minStackTop(MinStack* obj) {if(obj->next != NULL)return obj->next->data;else    return -1;
}int minStackGetMin(MinStack* obj) {if(obj->next != NULL)return obj->next->min;else    return -1;
}

踩坑点:

因为要在常数时间复杂度内找到最小值,所以不能遍历栈来找。
**解决:**在一个数据节点上设置一个保存最小值的域,插入一个数据元素比较一次,所以obj->next->min永远保存着最小栈。当删除obj->next节点时(删除时只能删这个节点),obj->next->next->min依旧是保存的最小值

LeetCode篇之栈:155(常数时间复杂度内找最小栈)相关推荐

  1. 复习栈和队列,详解最小栈,栈的弹出压入序列,逆波兰表达式求值

    栈和队列的概念 栈:吃进去吐出来 对列:吃进去拉出来 数据结构中的栈和内存中的区别 数据结构中的栈具有后进先出的特性,而内存中的栈是一个内存空间,只不过这个内存空间具与数据结构的栈具有相同的特性. 栈 ...

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

    设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. top() -- 获取栈顶元素. ...

  3. Leetcode典型题解答和分析、归纳和汇总——T155(最小栈)

    问题描述: 设计一个支持push,top,pop操作,并能在常数时间内检索到最小元素的栈. 问题分析: 本题其实就是考察栈的基本操作:如入栈s.push(x),出栈s.pop(),查看栈顶元素值s.t ...

  4. leetcode 155. 最小栈(常数时间获取最小值,需要维护两个栈)

    题目 思路 左神讲过的经典算法,维护两个栈: stack,用来存储数据 minStack,用来存储每个位置情况下的最小值,类似于动态规划. 每次入栈2个元素,一个是入栈的元素本身,一个是当前栈元素的最 ...

  5. Leetcode刷题 155题: 最小栈(基于python3和c++两种语言)

    ** Leetcode刷题 155题: 最小栈(基于python3和c++两种语言) ** ** 题目: ** 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. ...

  6. 《LeetCode力扣练习》第155题 最小栈 Java

    <LeetCode力扣练习>第155题 最小栈 Java 一.资源 题目: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. 实现 MinStack ...

  7. 【LeetCode】【HOT】155. 最小栈(辅助栈)

    [LeetCode][HOT]155. 最小栈 文章目录 [LeetCode][HOT]155. 最小栈 package hot;import java.util.ArrayDeque; import ...

  8. leetcode系列-155.最小栈

    leetcode系列–第155题.最小栈 题目描述: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. 实现 MinStack 类: MinStack() 初始化 ...

  9. LeetCode:155. 最小栈

    题目链接 155.最小栈 题目描述 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. ...

最新文章

  1. 由于应用universal link校验不通过_垃圾吊称重校验砝码2000kg市场行情分析
  2. LBP特征的理论介绍
  3. 十三、开多线程,咱们一起来斗图
  4. 一个电子工程师的完美人生!
  5. 如何用 Linq 进行多重 Orderby ?
  6. Spring Boot的Spring Data JPA示例
  7. redis 安装配置
  8. 【转】面向对象之多态(向上转型与向下转型)
  9. 大家身边极度聪明的人是什么样子?
  10. 目录访问共享C#怎么访问共享目录
  11. window下hive的安装
  12. Reflector7.5.2.1的Bug
  13. 制作ESXi6.5启动盘
  14. iOS——常用的手势总结
  15. python工业机器人_工业机器人编程语言汇总!
  16. Python 预测孩子身高
  17. 什么是R型直流电源变压器?
  18. 结构化大数据分析平台设计
  19. 神经网络和深度神经网络,图神经网络和神经网络
  20. VMWare 下完美安装 Mac OS X

热门文章

  1. 支付宝前端推出《Web前端开发入门手册》
  2. 又一个被JavaScript攻占的领域:物联网
  3. C语言课程设计题库及答案,C语言课程设计题目.docx
  4. 监督学习 | SVM 之线性支持向量机原理
  5. TypeError: cannot convert the series to <class ‘float‘>问题解决
  6. 安装cleanmymac软件提示已损坏无法打开,如何解决?
  7. 给力!使用MacPilot解锁macOS 1200多个隐藏功能!(支持M1处理器mac)
  8. Pycharm的git密码填错了的修改方法
  9. android麦克风监听动画效果,微信小程序实现录音时的麦克风动画效果实例
  10. Spring Boot文档阅读笔记-Spring Boot @Bean解析