腾讯TEG面试

问的不多
1. c++的map高并发如何加速
2. 项目
2. 手撕 单链表偶数位倒序
1 2 3 4 5 6 转换为
1 6 3 4 5 2 要求一次遍历,我是算法菜鸡,一次遍历不知道咋写,求解

==========================
以下两种方法不符题意:
1. 奇偶分拆,奇顺插,偶倒插,再合并,得2次遍历
2. 开辟新数组,存结构体,奇数位指针顺着指数组,偶数位数据倒存进数组,一次,但是开辟新空间,同时得知道链表长度
都不满足面试官要求
全部评论
我去 c++的map高并发如何加速这个咋回答 大佬
3 回复 分享
发布于 2023-11-04 11:23 上海
我感觉是可以用快排的思路
1 回复 分享
发布于 2023-11-06 01:11 广东
按楼主第二个方法,创建一个数组,存地址和值,遍历时计数,奇数时就把该节点地址和值存起来,遍历完成后,再遍历一遍数组,这样算1.5次遍历吧😂
1 回复 分享
发布于 2023-11-15 00:29 河北
递归 + 队列呢? 碰到偶数就入队,递归出口设置开启匹配,匹配阶段把自身值再入队同时自身置换。
1 回复 分享
发布于 2023-12-04 13:10 北京
双指针一个正遍历一个倒着遍历,交换偶数下标的值可以吧
点赞 回复 分享
发布于 2023-11-04 11:25 黑龙江
佬做的什么项目呀?
点赞 回复 分享
发布于 2023-12-18 10:40 四川
如果因为这种 ** 算法题把你挂了,这班不上也罢
点赞 回复 分享
发布于 2023-12-23 13:21 新加坡
算法那题用递归应该可以吧,拿一个全局变量存第一个节点1,递归直到最后一个偶数节点2n,然后开始返回,把全局变量存的节点1指向最后一个偶数节点2n,把2n指向1->next->next,以此类推
点赞 回复 分享
发布于 2024-01-29 20:39 福建
建一个队列和一个栈,每当遇到偶数结点就同时进栈和队列,遍历完一次之后不停交换栈顶和队列尾的元素直到两个容器的size相等,或者可以加个计数器算要交换几次,大致思路是这样,应该算一次遍历
点赞 回复 分享
发布于 2024-02-03 21:13 香港
我觉得可以先保存原序列 然后可以翻转整个序列 在把原序列的偶数位换成翻转后的序列上的元素吧
点赞 回复 分享
发布于 2024-03-06 16:00 湖北

相关推荐

2024-12-10 11:20
武汉大学 Java
腾讯 非核心 总包48w
点赞 评论 收藏
分享
字节 菜鸟Java 8w签字费,24×15
点赞 评论 收藏
分享
2024-12-09 00:52
门头沟学院 产品专员
阿里 校招生 薪资是16*16,还有1.2k的房补和0.5k的餐补
点赞 评论 收藏
分享
评论
6
23
分享
牛客网
牛客企业服务