淘天Java研发实习 - 笔试

2025年4月8号 19:00 - 20:40

题型:

基础 - 单选 7题 21分

基础 - 多选 5题 15分

Java基础 - 单选 2题 6分

Java基础 - 多选 1题 3分

编程题(工程) 1题 20分

编程题(共用) 2题 35分

编程题(工程):

整体判断:

题目描述:

对于给定的k个数组,第i个数组由ni个整数组成。现在想知道,是否存在这样两个不同的数组,使得这两个数组各自删除一个整数后,这两个数组剩下的元素和相等。

输入:

第一行输入一个整数,代表数据组数。

每组测试数据:第一行输入一个整数k,代表有k个数组。

第i个数组:第一行输入一个整数n,代表i数组的元素个数。

第二行输入n个整数,即i数组。

输出:

存在两个数组使得两个数组各删除一个整数后,这两个数组剩下的元素和相等,则输出YES,反之输出NO。

例如:
输入:
2
2
5
2 3 1 3 2
6
1 1 2 2 2 1
2
2
8 9
9
2 10 20 6 18 6 2 1 8 7
输出:
YES
NO

编程题(共用):

1.小苯的字符串构造

题目描述:

小苯给了你一个正整数n,他希望你构造一个仅包含小写英文字母'a'到'z'长度为n的字符串s,满足s的所有本质不同连续子串中,长度为奇数的字串恰好出现了奇数次。

本质不同连续子串:指的是从一个字符串中提取的所有连续子串中,按内容相同性去重后得到的集合。在这个集合中,如果有两个子串在字符序列上完全相同,那么他们被视为“本质相同”,只记作一个。

例如,对字符串“aa”。所有可能的连续子串为:从位置1:“a”,“aa”;从位置2:“a”,其中“a”出现两个,但本质不同连续子串只记作“a”,“aa”两个。

输入:

第一行包含一个正整数T(1≤T≤100),代表T组数据

接下来T组数据在单独一行输入一个正整数n(1≤n≤2000)

例如:
输入:
1
4
输出:
live

2.小红的子树操作

题目描述:

在神秘莫测的比特王国中,流传着这样一个传说——在王国深处生长着一棵蕴含天机的神奇大树。这棵树由n个节点构成,1号点是根节点,每个节点都记录着一段古老的符文,初始每个节点的符文为ai。传说只有将树上所有节点的符文调和为零,才能开启通往失落宝藏的大门。聪明勇敢的小红接受了挑战,她掌握了一套奇特的操作法则,能够对树中部分节点施法改变其符文,但每次施法都需要付出一定代价。

具体来说,小红可以进行如下操作:

  • 选择树中的任一节点 v 及一个非负整数 x 。
  • 将 v 以及 v 的子树中所有与 v 距离为偶数的节点的权值进行异或操作,即更新为:a[u] = a[u] ^ x 。
  • 每进行一次此操作就产生 x 的代价。

请问小红至少需要花费多少总代价,才能使得所有节点的符文权值均变为0?

名词解释:在一棵树中,对于任一节点 v ,以 v 为根节点并包含所有从 v 出发可以达到的后代节点(包括 v 自身)的集合构成了 v 的子树。在树中,任意两个节点之间仅存在一条简单路径,该路径上所经过的边的数目定义为这两个节点之间的距离。

输入:

第一行包含一个整数 n ,表示节点的数量。

第二行输入 n 个整数 a1,a2,……,an ,表示各个节点初始权值。

接下来第 n-1 行输入两个整数 u,v ,表示树中的一条边,所给边构成一棵以1为根的树。

1≤ n ≤2×10^5

0≤ ai ≤10^9

输出:

输出一个整数,表示将所有节点权值变为0的最小总代价。

例如:
输入:
5
1 4 3 5 5
1 2
2 3
3 4
3 5
输出:
9
解析:
先选节点1,花费1代价,使得节点变为[0,4,2,5,5];
再选节点2,花费4代价,使得节点变为[0,0,2,1,1];
再选节点3,花费2代价,使得节点变为[0,0,0,1,1];
再选节点4,花费1代价,使得节点变为[0,0,0,0,1];
再选节点5,花费1代价,使得节点变为[0,0,0,0,0];
因此输出为 1 + 4 + 2 + 1 + 1 = 9

全部评论

相关推荐

一面技术面,面试官应该是一个老骑手了,懂得很多,拷打的很深,很多问题我都答不上来,感觉进不了站长二面了。。。1.自我介绍,有什么特质适应骑手的工作然后开始问情景题2.假设你午高峰时同时配送多个订单,cbd有5个订单同时超时预警,其中3个在写字楼20层以上且电梯排队,1个是容易洒的汤品,另1个客户备注“迟到就拒收,等着差评吧”,你会如何设计这次配送的策略?根本答不出来,感觉就不应该一次接这么多单。。。。我回答应该按照距离来看,然后再先满足汤品,然后送备注的那个客户,最后再送写字楼的,面试官感觉不是很满意。。。3.调度系统发现骑手在午高峰时只接距离近、单价高的订单,导致长距离订单积压。作为平台方,你会如何优化调度算法来平衡骑手收益和用户体验?答不上来。。。骑手岗为什么会问到平台方啊,直接说不清楚,换个问题4.换了个问题,现在你手上已经有4个订单,全部临近超时,这时系统突然推送一个肥单,配送费翻倍。但接了必然导致已有订单超时。你会怎么决策?答应该放弃肥单,肯定不能超时啊。。。不知道为什么要问这个,感觉现在美团特别喜欢问超时的情况?感觉面试官已经有些不耐烦了。。。。回答的确实不好,可能这些问题对于老骑手来说很简单吧,然后问了道算法5.算法:给定一个地图(用邻接矩阵表示),m个取餐点和n个送餐点坐标,你当前位于取餐点1,计算最优路径,使得总行驶距离最短,且所有餐点都取到后再开始配送,要用贪心,但是时间太短了没做出来。。。6.反问,我问了咱们站点主要接的单是周围多大范围的,爬楼多不多,面试官回答要具体看情况,不好说,但是爬楼肯定要爬。然后又问了问面试官个人对于差评是怎么看的,大概差评率多高算高,面试官说越低越好,不好确定,怎么感觉什么都没问出来。。。感觉要挂了,发个面经攒功德,如果挂了我就投隔壁京东骑手了,那边貌似缺人,应该好进一些。。。。有无uu已经是骑手的给个内推?
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
牛客网
牛客企业服务