《剑指offer》刷题笔记(举例让抽象具体化):包含min函数的栈
2017-10-21 10:24
495 查看
《剑指offer》刷题笔记(举例让抽象具体化):包含min函数的栈
转载请注明作者和出处:http://blog.csdn.net/u011475210代码地址:https://github.com/WordZzzz/Note/tree/master/AtOffer
刷题平台:https://www.nowcoder.com/
题 库:剑指offer
编 者:WordZzzz
剑指offer刷题笔记举例让抽象具体化包含min函数的栈
前言
题目描述
解题思路
C版代码实现
Python版代码实现
前言:
当一眼看不出问题中隐藏的规律时,我们可以试着用一两个具体的例子模拟操作的过程,说不定这样那就能通过具体的例子找到抽象的规律。题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。解题思路
我们很自然的可以想到,可以利用两个栈来实现该操作:一个栈sData用来存放数据,另一个栈sMin用来辅助更新最小值状态。栈内压入3、4、2、1之后接连两次弹出栈顶数字之后再压入0时,数据栈、辅助栈和最小值状态举例如图所示:
C++版代码实现
class Solution { public: void push(int value) { sData.push(value); if(sMin.empty()) sMin.push(value); if(sMin.top() > value) sMin.push(value); } void pop() { if(sData.top() == sMin.top()) sMin.pop(); sData.pop(); } int top() { return sData.top(); } int min() { return sMin.top(); } private: stack<int> sData; stack<int> sMin; };
Python版代码实现
# -*- coding:utf-8 -*- class Solution: def __init__(self): self.sData = [] self.sMin = [] def push(self, node): # write code here self.sData.append(node) if len(self.sMin) == 0: self.sMin.append(node) if self.sMin[-1] > node: self.sMin.append(node) def pop(self): # write code here if self.sData[-1] == self.sMin[-1]: self.sMin.pop() self.sData.pop() def top(self): # write code here return self.sData[-1] def min(self): # write code here return self.sMin[-1]
系列教程持续发布中,欢迎订阅、关注、收藏、评论、点赞哦~~( ̄▽ ̄~)~
完的汪(∪。∪)。。。zzz
相关文章推荐
- 《剑指offer》刷题笔记(举例让抽象具体化):从上往下打印二叉树
- 举例让抽象问题具体化:包含min函数的栈
- 剑指offer 21题 【举例让抽象具体化】包含min函数的栈
- (C++)剑指offer-20:包含min函数的栈(举例让抽象具体化)
- 《剑指offer》刷题笔记(举例让抽象具体化):二叉树中和为某一值的路径
- 【剑指offer】4.3举例让抽象问题具体化——面试题21:包含min函数的栈
- 《剑指offer》刷题笔记(举例让抽象具体化):二叉搜索树的后序遍历序列
- 剑指offer 23题 【举例让抽象具体化】从上往下打印二叉树
- 剑指offer:(22)举例让抽象问题具体化 :栈的压入,弹出序列
- 《剑指offer》刷题笔记(举例让抽象具体化):栈的压入、弹出序列
- 剑指offer 22题 【举例让抽象具体化】栈的压入、弹出序列
- 剑指Offer-30:包含min函数的栈
- (C++)剑指offer-23:二叉搜索树的后序遍历序列(举例让抽象具体化)
- 剑指offer——面试题21:包含min函数的栈
- 【剑指offer】4.3举例让抽象问题具体化——面试题25:二叉树中和为某一值的路径
- 《剑指offer》面试题21—包含min函数的栈
- (C++)剑指offer-24:二叉树中和为某一值的路径(举例让抽象具体化)
- 剑指Offer系列---(23)包含min函数的栈
- 举例让抽象问题具体化:二叉树中和为某一值的路径
- 牛客网-《剑指offer》-包含min函数的栈