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

去面试微信实习,遇到这道算法题,当时被卡住,故今天把它写出来做下知识整理, 原题:实现一个栈,满足min pop push 方法的时间复杂度都为O . min 返回栈中最小元素 思路 :用一个变量minItem记录栈中的最小值,在push 中每次加入一个item就跟minItem对比,item更小,只item赋给minItem,然后再min 中直接return minItem 这种思路没考虑在po ...

2013-03-29 08:17 28 5757 推荐指数:

查看详情

实现一个 能在O(1)时间复杂度 完成 Push、Pop、Min操作的

一,问题描述 实现一个(元素遵守先入后出顺序),能够通过 min 方法在 O(1)时间内获取中的最小元素。同时,的基本操作:入(Push)、出(Pop),也是在O(1)时间内完成的。 二,问题分析 之所以认为这个问题有趣,是因为在实现 min 方法的过程 牵涉到了 “缓存 ...

Fri Aug 19 05:17:00 CST 2016 0 3184
Java实现最小的两种方式——时间复杂度O(1)

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

Sat Jan 18 09:09:00 CST 2020 0 865
算法初级面试题01——认识时间复杂度、对数器、 master公式计算时间复杂度、小和问题和逆序对问题

虽然以前学过,再次回顾还是有别样的收获~ 认识时间复杂度 常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。 时间复杂度为一个算法流程中,常数操作数量的指标。常用O(读作big O)来表示。具体来说,在常数操作数量的表达式中 ...

Tue Nov 06 23:45:00 CST 2018 2 1357
时间复杂度O(n)

时间复杂度 算法分析 同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。 一、时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知 ...

Thu Oct 11 18:52:00 CST 2018 0 799
O(1)时间复杂度内求中最小元素

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

Fri Nov 10 00:49:00 CST 2017 0 1149
 
粤ICP备18138465号  © 2018-2026 CODEPRJ.COM