笔试-爱奇艺-180915(算法)

笔试-爱奇艺-180915

  • 单选 20,编程 2

局长的食物

暴力(AC)

N, M, P = list(map(int, input().split()))
A = list(map(int, input().split()))

for i in range(M):
    """"""
    flag, t = input().split()
    a = int(t)
    if flag == 'A':
        A[a - 1] += 1
    else:
        A[a - 1] -= 1

A = list(zip(A, range(1, len(A) + 1)))
# A = [(4, 1), (5, 2), (2, 3), (4, 4), (2, 5)]
# print(A)
A.sort(reverse=True)
# print(A)

ret = {A[0][1]: 1}  # {2: 1}
for i in range(1, len(A)):
    if A[i][0] == A[i - 1][0]:
        ret[A[i][1]] = ret[A[i-1][1]]
    else:
        ret[A[i][1]] = i + 1
# print(ret)
print(ret[P])

库特君的面条

思路

  • 贪心
  • 最大不重叠区间

贪心(AC)

N = int(input())
line = []
for _ in range(N):
    a, b = sorted(list(map(int, input().split())))
    line.append([a, b])

# line.sort()
line.sort(key=lambda a: a[1])
# print(line)

ret = [line[0]]
for item in line[1:]:
    if item[0] < ret[-1][1]:
        pass
    else:
        ret.append(item)

print(len(ret))

完整问题描述

#爱奇艺##笔试题目#
全部评论
看了大佬的GitHub震惊了
点赞 回复 分享
发布于 2018-09-15 12:35
不做测试可惜了
点赞 回复 分享
发布于 2018-09-15 12:18
求问,第一题的最后排序,为啥不能先用set去重,然后排序,找之前的那个数的index+1不就是他的名次了吗。,不懂自己为啥错
点赞 回复 分享
发布于 2018-09-15 12:17
第二题,result=两边的差÷9,然后如果有余数result再加1,就是结果。通过91%
点赞 回复 分享
发布于 2018-09-15 12:14
split(“ ”)为啥一直a不过!!!
点赞 回复 分享
发布于 2018-09-15 12:05

相关推荐

评论
点赞
8
分享

创作者周榜

更多
牛客网
牛客企业服务