首页 / 阿里笔试2020
#
阿里笔试2020
#24667次浏览 223人互动
此刻你想和大家分享什么
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2022-03-25 12:48
华中科技大学 客户端其它 点赞 评论 收藏
分享
点赞 评论 收藏
分享
2020-03-25 15:08
湖南工业大学 C++ 点赞 评论 收藏
分享
点赞 评论 收藏
分享
阿里笔试417
纸夜:用分治
1. 将奇数分为右半边,偶数分为左半边,因为 奇数+偶数=奇数 不可能和任意一个2*n相等
2.考虑到奇数侧 有 x = 2n + 1,所以 我们构造一个0~n/2的序列然后将其乘2加1就构造出了左半边
3.偶数侧同理
4. 对于 n <=3的情况直接构造,分别是 int res1[] = {0}, int res2[] = {0,1}, int res3[] = {0,2,1},

点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
阿里巴巴笔试4/20 实习生
谁能解忧,唯有代码:第二题,运用DFS,你代码没有回溯,加上回溯应该能过

点赞 评论 收藏
分享
阿里笔试 附代码C++ 2020.4.15
郭子路:第二题100%,分别a, b排序,双指针
import sys
n = int(sys.stdin.readline().strip())
nums = list()
for i in range(n):
a, b = map(int, sys.stdin.readline().strip().split())
nums.append([a, b, i])
nums_a = sorted(nums, key=lambda x:x[0], reverse=True)
nums_b = sorted(nums, key=lambda x:x[1], reverse=True)
posa = 0
posb = 0
res = 0
while(posa < n and posb < n):
pre_a = nums_a[posa]
pre_b = nums_b[posb]
if pre_a[2] == pre_b[2]:
posa += 1
continue
val_a = pre_a[0]+pre_b[0]
val_b = pre_a[1]+pre_b[1]
val = min(val_a, val_b)
res = max(res, val)
if (val_a > val_b):
posa += 1
else:
posb += 1
print (res/2)

点赞 评论 收藏
分享
点赞 评论 收藏
分享
2020-03-24 23:37
中南大学 前端工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享