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

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 回复 分享
发布于 2022-04-01 21:10
第三题判断是否为偶数 直接返回 0或1 通过 40%
1 回复 分享
发布于 2022-04-01 21:12
笑死,今天做了发现和去年的笔试题一模一样
1 回复 分享
发布于 2023-03-20 19:25 山西
为啥我暴力才30😂
点赞 回复 分享
发布于 2022-04-01 21:10
第二题排序后暴力 100%
点赞 回复 分享
发布于 2022-04-01 21:12
第三题滑动窗口
点赞 回复 分享
发布于 2022-04-01 21:12
1 0.8 0.9
点赞 回复 分享
发布于 2022-04-01 21:17
第二题怎么做呀😭
点赞 回复 分享
发布于 2022-04-01 21:19
只做出来第二题,第一题超时,第三题20%二三都用二分
点赞 回复 分享
发布于 2022-04-01 21:22
t2排序后直接双指针就行,o(n)的复杂度,t3我用的排序二分
点赞 回复 分享
发布于 2022-04-01 21:32
1 0.9 1,t1模拟,t2我用的暴力法,t3用的滑动窗口
点赞 回复 分享
发布于 2022-04-01 21:38
t1直接法100%,t2先排序后双指针100%,t3分为跨越首尾结点和不跨越70%
点赞 回复 分享
发布于 2022-04-01 22:06
和上次一样的题,我去
点赞 回复 分享
发布于 2022-04-01 22:25
m
点赞 回复 分享
发布于 2022-04-01 23:05
想知道楼主的项目是什么?
点赞 回复 分享
发布于 2022-04-01 23:22
有大佬贴一下第一题的代码嘛😭
点赞 回复 分享
发布于 2022-04-01 23:32
这题和上一次服务器开发笔试题一模一样,我一面之后就没消息了,这都又一次笔试了,估计我是凉了
点赞 回复 分享
发布于 2022-04-02 11:48
我客户端怎么和服务器的题一样
点赞 回复 分享
发布于 2022-04-06 18:16
第三题感觉可以分类。第一种是首元素与尾元素不在一组,则用一个指针找分界点就行了。第二种是首元素和尾元素在一个组,则另一个组肯定被囊括在[2,n-1],用双指针先初始化指向2和n-1。然后每次分别判断左右指针收缩一位的情况,并选择移动左指针/右指针/不动。然后比较两种情况找到的结果。
点赞 回复 分享
发布于 2022-04-30 17:29

相关推荐

10-06 12:46
门头沟学院 Java
跨考小白:定时任务启动
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
3
26
分享
牛客网
牛客企业服务