剑指offer牛客网练习20200127

1.包含min函数的栈

一开始自己没看懂思路,去看了讨论区意思是要两个栈,后来想明白了

要用多一个栈存储较小值

多一个栈的push条件:栈为空或者小于等于栈顶的元素

出栈条件:栈不为空且等于栈顶的元素

# -*- coding: utf-8 -*-
"""
Created on Sun Dec 22 14:41:47 2019

@author: Shiyi Chen
"""
# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.arr=[]
        self.mini=[]
    def push(self, node):
        # write code here
        self.arr.append(node)
        if self.mini:
            mix=self.mini[-1]
            if node<=mix:
                self.mini.append(node)
        else:
            self.mini.append(node)
    def pop(self):
        # write code here
        if self.arr:
            if self.arr[-1]==self.mini[-1]:
                self.mini.pop()
            return self.arr.pop()
        else:
            return None
    def top(self):
        # write code here
        if self.arr:
            return self.arr[-1]
        else:
            return None
    def min(self):
        # write code here
        if self.mini:
            return self.mini[-1]
        else:
            return None

 

剑指offer牛客网练习20200127剑指offer牛客网练习20200127 就是一只白 发布了39 篇原创文章 · 获赞 6 · 访问量 2万+ 私信 关注
上一篇:Xilinx MIG IP核app_wdf_rdy信号一直为低


下一篇:ddr2