首页 > TAG信息列表 > offer30
offer30 包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.min(); --> 返回 -3. minStack.java剑指offer30:包含min函数的栈
欢迎关注公众号: 题目描述: 思路分析: 解法一:利用辅助栈 方法一的基本思想是利用两个栈来实现数据的入栈和栈,一个栈保存原始数据,另一个栈保存所有入栈的数据的最小值,这样,查询最小值时只要返回最小值栈的栈顶元素即可。具体实现借用牛客网的答案: 首先初始化原始栈stack 和剑指offer30-*从1到n整数中1出现的次数
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次剑指offer30:包含min函数的栈
class Stack(object): def __init__(self): self.items=[] self.min_s=[] def push(self,item): self.items.append(item) if not self.min_s or self.min_s[-1]>=item: self.min_s.append(item) else: