重刷剑指offer

要用java好好刷题哦
参考书A《剑指offer》 书B《程序员面试经典》

设计题

熟悉集合Stack Queue PriotyQueue的方法
1.A、B公共题包含min函数的栈
分析:
普通栈求min()的复杂度是O(N),满足O(1)的要求必须引入一个辅助栈,对主栈进行每一步操作时,更新辅助栈,使得辅助栈的栈顶都是当前主栈的最小值。
注意:Java包装类Integer比较值要用equals

2.数据流的中位数
重要重要重要!!!
分析:始终维护一个最大堆和一个最小堆,及时更新堆顶
保证元素数量为偶数时 中位数为 二者堆顶的平均值
元素数量为奇数时 中位数为最大堆的堆顶值

3.剑指 Offer 09. 用两个栈实现队列
分析:两个栈,需要一个辅助栈输出队列首元素。主栈完成基础的入队操作,需要元素出队列时,若辅助栈为空,将主栈元素依次存入辅助栈,否则不操作主栈元素,辅助栈的栈顶元素即为队列的队首元素。

注意:字符串的相关操作用StringBuilder类,它是线程不安全的,比StringBuffer快。

1.包含min函数的栈
3.剑指 Offer 09. 用两个栈实现队列
5.II. 队列的最大值

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值