原文:python实现时间o(1)的最小栈

这是毕业校招二面时遇到的手写编程题,当时刚刚开始学习python,整个栈写下来也是费了不少时间。毕竟语言只是工具,只要想清楚实现,使用任何语言都能快速的写出来。 何为最小栈 栈最基础的操作是压栈 push 和退栈 pop ,现在需要增加一个返回栈内最小值的函数 get min ,要求get min函数的时间复杂度为o 。python的栈肯定是使用list实现,只要将list的append和pop封 ...

2018-02-11 22:07 1 1015 推荐指数:

查看详情

腾讯微信面试题--实现时间复杂度为O(1)的 2013-02-26

去面试微信实习,遇到这道算法题,当时被卡住,故今天把它写出来做下知识整理, 原题:实现一个,满足min() pop() push()方法的时间复杂度都为O(1).( min()返回最小元素 ) 思路1:用一个变量minItem记录中的最小值,在push()中 ...

Fri Mar 29 16:17:00 CST 2013 28 5757
Java实现最小的两种方式——时间复杂度O(1)

一、前言   最近依旧在刷《剑指offer》的题目,然后今天写到了一道蛮有意思的题目,叫做包含min函数的,解题思路有点妙,写篇博客记录一下。 二、描述   这道题目的描述是:定义的数据结构,请在该类型中实现一个能够得到中所含最小元素的min函数(时间复杂度应为O ...

Sat Jan 18 09:09:00 CST 2020 0 865
O(1)时间复杂度内求最小元素

如何在O(1)时间复杂度内求最小元素呢?可以使用两个实现该问题。 参考《Java程序员面试笔试宝典》的实现方法:使用两个结构,一个(记为S1)用来存储数据,另一个(记为S2)用来指示着S1的最小元素。元素入S1时,如果当前入的元素比S2中已有元素还小,则把该元素也入S2 ...

Fri Nov 10 00:49:00 CST 2017 0 1149
最小实现与优化

最小 实现一个最小,一步一步优化,从额外空间O(N) 到O(1) 。面试官看重代码逻辑。push,pop,top,getMin都是O(1)时间。 1 用一个最小来存储最小值 1.1要点: 2个,data用来存储数据,minValue用来存储最小值。 push时,data ...

Tue Jul 28 19:49:00 CST 2015 0 3185
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM