莉莉丝服务器开发暑期实习笔试

2022.4.1

第一题

给一个链表,按照规定进行排序。

输入:1,2,3,4,5

输出:5,3,1,2,4

解释:1插到链表头,2插到链表尾,3插到头,4插到尾,5插到头

我的思路:签到题,注意null。

第二题

给一个数组a,一个数k,求数组里有多少对ai和aj,满足:

  • i < j

  • ai + aj <= k

输入:[1,3,2],5

输出:3(1和3,1和2,3和2)

我的思路:先暴力70%,然后开始思考,感觉有点像逆序对,然后开始归并,一小时后依旧0%,放弃。

第三题

给一个数组,可以成环,求将其分割成两部分之后,两部分之和的绝对值之差的最小值。

输入:1,2,3,4,5

输出:1

解释:分成[3,4]和[5,1,2]两部分,绝对值之差最小,为1。

我的思路:暴力枚举一部分的大小,从1到n-1,然后计算,70%。

牛友们愚人节快乐~
#实习经验分享##笔试题目##实习##莉莉丝游戏#
全部评论
第三题 滑动窗口解法  long long minimum(vector<int>& a) {           // write code here           int left = 0;           int sum = 0,  sum1 = 0;//sum1窗口内元素和           for (int i : a) {               sum += i;           }           int  avg = sum / 2;           int ans = INT_MAX;          for (int right = 0;right < a.size();right++) {                   sum1 += a[right];                   ans = min(abs(sum - sum1 - sum1), ans);               while (sum1>avg) {                                sum1 -= a[left];                   left++;                   ans = min(abs(sum - sum1 - sum1), ans);               }           }           return ans;       }
8 回复 分享
发布于 2022-04-01 23:02
笑死,今天做了发现和去年的笔试题一模一样
2 回复 分享
发布于 2023-03-20 19:25 山西
有选择题吗
2 回复 分享
发布于 2022-04-01 21:10
第二题死活一直以为不能排序,竟然能直接排序二分,不然早AK了
1 回复 分享
发布于 2023-03-29 21:19 湖北
t1直接法100%,t2先排序后双指针100%,t3分为跨越首尾结点和不跨越70%
1 回复 分享
发布于 2022-04-01 22:06
第三题判断是否为偶数 直接返回 0或1 通过 40%
1 回复 分享
发布于 2022-04-01 21:12
*,日常实习还是这三题。以为去年没理。就做出第一道,其他暴力,45%,30%。。。。我是go服务端,结果单选考java,c++。。。
点赞 回复 分享
发布于 2023-07-27 02:18 福建
第三题感觉可以分类。第一种是首元素与尾元素不在一组,则用一个指针找分界点就行了。第二种是首元素和尾元素在一个组,则另一个组肯定被囊括在[2,n-1],用双指针先初始化指向2和n-1。然后每次分别判断左右指针收缩一位的情况,并选择移动左指针/右指针/不动。然后比较两种情况找到的结果。
点赞 回复 分享
发布于 2022-04-30 17:29
我客户端怎么和服务器的题一样
点赞 回复 分享
发布于 2022-04-06 18:16
这题和上一次服务器开发笔试题一模一样,我一面之后就没消息了,这都又一次笔试了,估计我是凉了
点赞 回复 分享
发布于 2022-04-02 11:48
有大佬贴一下第一题的代码嘛😭
点赞 回复 分享
发布于 2022-04-01 23:32
想知道楼主的项目是什么?
点赞 回复 分享
发布于 2022-04-01 23:22
m
点赞 回复 分享
发布于 2022-04-01 23:05
和上次一样的题,我去
点赞 回复 分享
发布于 2022-04-01 22:25
1 0.9 1,t1模拟,t2我用的暴力法,t3用的滑动窗口
点赞 回复 分享
发布于 2022-04-01 21:38
t2排序后直接双指针就行,o(n)的复杂度,t3我用的排序二分
点赞 回复 分享
发布于 2022-04-01 21:32
只做出来第二题,第一题超时,第三题20%二三都用二分
点赞 回复 分享
发布于 2022-04-01 21:22
第二题怎么做呀😭
点赞 回复 分享
发布于 2022-04-01 21:19
1 0.8 0.9
点赞 回复 分享
发布于 2022-04-01 21:17
第三题滑动窗口
点赞 回复 分享
发布于 2022-04-01 21:12

相关推荐

10-13 18:55
东华大学 C++
一、开场与自我介绍二、技术八股与基础1.C++中的const关键字有哪些用法?它在成员函数中修饰this指针时有什么意义?​​​2.override和final关键字有什么作用?它们分别在什么场景下使用?​​​3.C++11中的移动语义是什么?移动构造函数和移动赋值运算符在什么情况下会被调用?​​​4.new/delete和malloc/free有什么区别?为什么不能混用?​​​5.智能指针有哪几种?请详细说明std::unique_ptr和std::shared_ptr的区别以及各自的适用场景。​​std::shared_ptr的底层实现原理是什么?std::weak_ptr有什么作用?它如何解决循环引用问题?​6.什么是深拷贝和浅拷贝?在什么情况下必须实现深拷贝?​​​7.C++中多态是如何实现的?请解释虚函数表(vtable)和虚指针(vptr)的工作原理。​​为什么基类的析构函数通常要求声明为虚函数?构造函数可以是虚函数吗?为什么?8.​std::vector和std::list的底层数据结构是什么?它们的主要区别和应用场景是什么?​​std::vector的插入操作在什么情况下会导致迭代器失效?它是如何扩容的?9.​std::map和std::unordered_map的底层实现是什么?它们的查找时间复杂度各是多少?​​什么情况下std::unordered_map的查找性能会退化到O(n)?如何避免?10​C++11中的lambda表达式是什么?它有哪些具体的应用场景?​​11.​什么是RAII机制?它在C++中有何重要性?请举例说明。​​12.TCP和UDP的核心区别是什么?游戏开发中如何选型?13.TCP三次握手和四次挥手的过程是怎样的?为什么建立连接是三次,而断开需要四次?14.​你实习中提到的UDP网络传输,如何在上层自己实现可靠性保证和有序性?15.进程、线程和协程的区别是什么?游戏服务器中为何常用多线程或多协程模型?16.Linux下如何排查CPU占用过高的问题?17.MySQL的索引底层是如何实现的?(B+树)18.在游戏数据库中,行锁和表锁如何考量?19.帧同步模式下,如果某客户端网络波动严重,会出现什么问题?如何缓解?20.游戏服务器在开服时(大量玩家同时涌入)和日常运营中,分别可能会遇到哪些性能瓶颈?你有什么思路来应对?三、项目与实习经历深挖游戏后台开发实习1.请详细介绍一下你在天美实习中最有挑战性的一项任务或项目,你具体承担的角色和实现方案?2.​​​​&nbsp;你提到了参与优化网络同步,请具体说说:3.游戏常用的网络同步模型(状态同步、帧同步)有哪些?它们各自的优缺点和适用场景是什么?4.在帧同步模式下,如果某客户端网络波动严重,会出现什么问题?如何缓解?(锁步、冗余输入、平滑插值等)5.如何保证不同客户端在计算同一逻辑帧时结果的一致性?(浮点数确定性、随机数种子管理等)6.实习中遇到的最难的技术问题是什么?你是如何分析、定位和解决的?测试开发实习7.你在京东的测试开发实习经历,对你理解后台开发有什么帮助?8.​​&nbsp;是否有过性能压测的经验?关注哪些指标(QPS、TPS、延迟、吞吐量)?如何分析压测结果?9.如果让你为游戏内的一个签到功能设计测试用例,你会考虑哪些方面?(功能、并发、边界、网络异常等)四、算法题合并区间​以数组&nbsp;intervals表示若干个区间的集合,其中单个区间为&nbsp;intervals[i]&nbsp;=&nbsp;[starti,&nbsp;endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组。五、反问问了一下团队的技术栈、业务方向、新人培养机制等建议​:面试不仅是技术考核,更是沟通和思维方式的展现。清晰描述你的项目,遇到难题时展示解决思路比直接放弃更好。
发面经攒人品
点赞 评论 收藏
分享
评论
4
28
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务