deque概述 vector是单向开口的连续性线性空间,deque则是一种双开的连续性空间,即两边都可以进行插入和删除操作(vector也可进行头部的删除、插入操作,但效率很差,不被接受)。 deque和vector最大差异,一是deque允许在常数时间内对头部元素进行插入和移除操作,二在于dequ ...
分类:
其他好文 时间:
2018-12-29 17:12:23
阅读次数:
140
内容: 1、时间复杂度 2、简单排序 3、对数器使用 4、递归 注:实现代码为Java 1、时间复杂度 什么是常数时间的复杂度:一个操作如果跟数据量没有关系,每次都是固定时间内完成的操作就叫常数操作 关于时间复杂度: 时间复杂度为一个算法流程中常数操作数量的指标(一般是最差情况下),常用O(读作bi ...
分类:
编程语言 时间:
2018-12-22 01:26:02
阅读次数:
173
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: ...
分类:
其他好文 时间:
2018-12-05 02:07:12
阅读次数:
174
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: ...
分类:
其他好文 时间:
2018-12-01 20:14:57
阅读次数:
191
题目描述: 设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。 示例: 解题思路: 分析:题目的难点在于有delete操作的情况下,要保证getRandom( )等概率随机返回集合中的一个元素。 一般地,题目的对时间复杂度的要求越高,都需要使用更多的辅助结构,以“空间换时间”。这 ...
分类:
其他好文 时间:
2018-11-08 10:59:06
阅读次数:
542
题目描述: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: ...
分类:
编程语言 时间:
2018-11-07 19:57:21
阅读次数:
238
Design a data structure that supports all following operations in average O(1) time. Example: 思路 HashMap + ArrayList 代码 ...
分类:
其他好文 时间:
2018-10-24 10:51:18
阅读次数:
117
哈希就是将某种类型的值映射到同种类型或其他类型的值。可以做到在常数时间内查询。 c++ STL中提供的map,就可以作为哈希表使用。 但是时间复杂度不低,是O(nlogn)的。还可以自己实现哈希表,在这里直接放一种比较不错的方法。 通过取模得到一个位置,如果是空的,那么把数放上去就行,否则向后找,直 ...
分类:
其他好文 时间:
2018-10-06 11:59:47
阅读次数:
143
问题描述: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: 方法1: 官方: 今天课太多了,明 ...
分类:
其他好文 时间:
2018-09-14 00:06:38
阅读次数:
227
认识时间复杂度: 常数时间的操作:一个操作如果和数据量没有关系,每次都是 固定时间内完成的操作,叫做常数操作。 时间复杂度为一个算法流程中,常数操作数量的指标。常用O (读作big O)来表示。具体来说,在常数操作数量的表达式中, 只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分 如果记为f( ...
分类:
编程语言 时间:
2018-07-19 23:27:37
阅读次数:
369