花花Y的小酥肉 level
获赞
5
粉丝
0
关注
0
看过 TA
2
西安电子科技大学
2020
算法工程师
IP属地:CloudFlareDNS
暂未填写个人简介
私信
关注
腾讯一道编程题 设置一个栈,实现push(),pop(),merge()三个方法 (1)push: 对栈a 或 栈b 压入一个元素num (2)pop: 对栈a 或 栈b 弹出一个元素 (3)merge: 将栈a合并到栈b,并清空栈a  或 栈b合并到栈a,清空栈b, 要按push的时间顺序合并 a 或 b 可以当作一个输入参数 要求 merge方法的平均时间复杂度为O(1) 面试官提示说:merge以后就不用再merge了,我也没听懂 有大佬来解一下,说下思路吗?
被咬过的包子:我有一个歪点子,首先构造单向链表(头插法)  然后给每个节点初始标记a队列的为1,b队列的为2 merge就把a的范围设为3,b的范围设为4 这样出队的话a就出队<=当前范围的数(目前是1,2,3) b就出队==当前b范围的数(目前是4) 唯一的缺点就是pop的极限复杂度可能会高一点(不过你题目没有要求pop的复杂度为1)
投递腾讯等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务