1.认识时间复杂度 常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。时间复杂度为一个算法流程中,常数操作数量的指标。常用O(读作big O)来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果记为f(N),那 ...
分类:
编程语言 时间:
2021-06-20 18:14:51
阅读次数:
0
壹 ? 引 本题来自LeetCode155. 最小栈,难度简单,题目描述如下: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() ...
分类:
Web程序 时间:
2021-06-10 18:09:39
阅读次数:
0
Java集合类的源码是深入学习Java非常好的素材,源码里很多优雅的写法和思路,会让人叹为观止。HashMap的源码尤为经典,是非常值得去深入研究的,jdk1.8中HashMap发生了比较大的变化。 一、初窥HashMap HashMap是应用更广泛的哈希表实现,而且大部分情况下,都能在常数时间性能 ...
分类:
其他好文 时间:
2020-09-17 21:53:11
阅读次数:
26
进行一次快排即可 class Solution { public: vector<int> exchange(vector<int>& nums) { int le = 0; int ri = nums.size() - 1; while(le<ri){ while (le < ri&&nums[r ...
分类:
编程语言 时间:
2020-09-10 22:36:24
阅读次数:
38
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 示例: 输入: ["MinStack","push ...
分类:
其他好文 时间:
2020-07-28 22:36:05
阅读次数:
71
此博客链接: 题目链接:https://leetcode-cn.com/problems/min-stack/submissions/ 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素 ...
分类:
其他好文 时间:
2020-07-25 09:45:52
阅读次数:
70
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。 思路:用一个辅助栈的栈顶记录原始栈的最小值,并且两个栈的 ...
分类:
其他好文 时间:
2020-07-22 20:49:40
阅读次数:
77
常数时间插入、删除和获取随机元素 设计一个支持在平均时间复杂度O(1)下,执行以下操作的数据结构。 insert(val): 当元素val不存在时,向集合中插入该项。 remove(val): 元素val存在时,从集合中移除该项。 getRandom: 随机返回现有集合中的一项,每个元素应该有相同的 ...
分类:
其他好文 时间:
2020-07-19 00:48:40
阅读次数:
55
【最小栈】:
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 ...
分类:
编程语言 时间:
2020-06-21 20:11:13
阅读次数:
57
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。 示例: 输入:["MinStack","push","p ...
分类:
其他好文 时间:
2020-06-19 14:02:01
阅读次数:
50