阿里云笔试910(算法)

第一题签到

第二题
从字符串数组中找出一组字符串,要求这组字符串拼接后存在主导字符,输出字符串的最大数量

主导字符:字符串中超过字符串长度一半的字符为主导字符

如:
aaab
abcd
abc
a
bb
应该输出4,前四个字符串拼接后主导字符为a

先想的用回溯,果不其然的超时了,只过了10%,一般回溯超时的话要不加剪枝,要不用dp,加了一些简单的剪枝没啥效果,dp想了半天也没想到怎么做

第三题

定义树的权值为树中所有路径权值的最大公倍数之和

现在需要构建一棵树,权值为2的节点有a个,权值为3的节点有b个,构建出权值最大的树

时间来不及了,题都没怎么看懂,没搞明白树的路径的定义是什么ummm,只记得给了个例子:
2 2 3
1 2
1 3
第一行是节点权值,2-3行是节点之间的边,路径有三条:
1 2
1 3
2 1 3
全部评论
约面了吗兄弟
点赞 回复 分享
发布于 2023-09-13 09:57 浙江
我第二题剪枝了也只过了10%
点赞 回复 分享
发布于 2023-09-10 20:19 天津

相关推荐

wolf_82:你是一个出租车费用计算器。根据用户输入的自然语言,提取里程、等候时间、是否夜间、大件行李数量,严格按以下规则计算,只输出JSON。 【计算步骤】 第一步:提取参数 - X = 行驶公里数 - T = 等候分钟数(未提及则为0) - N = 大件行李件数(未提及则为0) - 夜间 = 文中提到"夜间"/"凌晨"/时间在23:00(含)~次日5:00(不含)则为true,否则false 第二步:计算车费(base_fare) - 将X向上取整为整数D = ceil(X) - 若 D ≤ 3:base_fare = 10 - 若 3 < D ≤ 15:base_fare = 10 + (D - 3) × 3 - 若 D > 15:base_fare = 10 + 12 × 3 + (D - 15) × 4 第三步:计算等候费 - wait_fee = floor(T / 5) × 2 第四步:计算夜间加收 - 若夜间=true:night_amount = ceil(base_fare × 0.2) - 若夜间=false:night_amount = 0 第五步:计算行李费 - luggage_fee = N × 5 第六步:计算总费用 - fare = base_fare + night_amount + wait_fee + luggage_fee 【输出】 只输出一行JSON: {"fare": 总费用, "base_fare": 车费, "night_surcharge": 是否夜间}
阿里笔试
点赞 评论 收藏
分享
评论
2
7
分享

创作者周榜

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