编程之美3.7队列中取最大值操作问题(新解法,空间复杂度比原解法低)
2013-09-03 00:28
323 查看
题目就不再叙述了,前几种解法书上都有,我这暂且叫解法四:
思路如下:
假设有入队元素个数最多为n个。
1.首先开一个大小为n的数组data
来保存原始数据,以及大小为n的数组MAXARRAY
来保存最大值,。
2.假设入队的数为124375
3. 1入队列,则两个数组中的情况为:
data:1
MAXARRAY:1
4. 2 入队列,则两个数组中的情况为:
data:1,2
MAXARRAY:2,2
5. 4入队列:
data:1,2, 4
MAXARRAY:4,4,4
6. 3入队列:
data:1,2,4,3
MAXARRAY:4,4,4,3
7. 7入队列:
data:1,2,4,3,7
MAXARRAY:7,7,7,7,7
8. 5入队列:
data:1,2,4,3,7,5
MAXARRAY:7,7,7,7,7,5
9.出队列
在出队列时从data数组和MAXARRAY数组中同时弹出第一个元素。
10. 获得最大值
获得最大值时,直接取出MAXARRAY的第一个元素。
11. 时间复杂度和空间复杂度分析
时间复杂度:元素入队列时为:O(n),原题目中为O(1);出队列以及获得最大元素操作:O(1),原题目中为O(n)
空间复杂度:O(n),原题目为O(2 * n)(虽然常数可以忽略,但是实际空间消耗量为我的方法的2倍);
思路如下:
假设有入队元素个数最多为n个。
1.首先开一个大小为n的数组data
来保存原始数据,以及大小为n的数组MAXARRAY
来保存最大值,。
2.假设入队的数为124375
3. 1入队列,则两个数组中的情况为:
data:1
MAXARRAY:1
4. 2 入队列,则两个数组中的情况为:
data:1,2
MAXARRAY:2,2
5. 4入队列:
data:1,2, 4
MAXARRAY:4,4,4
6. 3入队列:
data:1,2,4,3
MAXARRAY:4,4,4,3
7. 7入队列:
data:1,2,4,3,7
MAXARRAY:7,7,7,7,7
8. 5入队列:
data:1,2,4,3,7,5
MAXARRAY:7,7,7,7,7,5
9.出队列
在出队列时从data数组和MAXARRAY数组中同时弹出第一个元素。
10. 获得最大值
获得最大值时,直接取出MAXARRAY的第一个元素。
11. 时间复杂度和空间复杂度分析
时间复杂度:元素入队列时为:O(n),原题目中为O(1);出队列以及获得最大元素操作:O(1),原题目中为O(n)
空间复杂度:O(n),原题目为O(2 * n)(虽然常数可以忽略,但是实际空间消耗量为我的方法的2倍);
相关文章推荐
- 读书笔记之编程之美 - 3.7 队列中取最大值操作问题
- [编程之美] PSet3.7 队列中取最大值操作问题
- 【编程之美】3.7 队列取最大值操作问题 ☆
- 编程之美-3.7-队列中取最大值操作问题
- 编程之美读书笔记3.7队列中取最大值操作的问题 解法2
- 编程之美--3.7 队列中取最大值操作问题
- 编程之美:第三章 结构之法 3.7队列中取最大值操作问题
- 编程之美-队列中取最大值操作问题
- 《编程之美》读书笔记18: 3.7 队列中取最大数操作问题
- 编程之美3.7——队列中取最大值操作问题
- 编程之美3.7队列中取最大值操作问题Java版
- 编程之美3.7,队列中的最大值操作问题
- 编程之美读书笔记_3.7_队列中取最大数操作问题
- 编程之美3.7——队列中取最大值操作问题
- 编程之美3.7——队列中取最大值操作问题
- 队列中取最大值操作问题(编程之美3.7)
- 编程之美3.7--队列中取最大值操作问题
- 编程之美 set 10 队列中取最大值操作问题
- 编程之美-队列中取最大值操作问题
- 编程之美---队列中取最大值操作问题