我刚刚使用Python完成了对Dcoder(“热爱数学”)的挑战。我没有通过两个测试用例,但是没有错。我使用了较低级别的Python来进行相同的操作,因为我还没有进行更多的探索,所以对不起,如果它看起来太基础了。挑战如下:
编码器学校的学生喜欢数学。他们喜欢阅读各种数学书籍。为了确保他们保持快乐,他们的数学老师决定为他们买更多的书。如果班上至少有X本数学书,而Y本以上的书不多,则学生会感到高兴,因为他们知道“所有的工作,没有玩耍,使杰克成为一个愚蠢的男孩”。老师想购买最少数量的书来制作最大的学生快乐数量。
输入
输入的第一行包含一个整数N,表示班上的学生人数。接下来是N行,其中每行分别包含两个整数X和Y。
#Sample Input
5
3 6
1 6
7 11
2 15
5 8
输出
输出两个用空格分隔的整数,它们表示所需的数学书籍的最小数量和快乐学生的最大数量。
说明:老师可以购买5本书,并使学生1、2、4和5保持快乐。
#Sample Output
5 4
约束:1 <= N <= 100001 <= X,Y <= 10 ^ 9
我的代码:] >>
我首先将两个最小值和最大值变量分配给两个不同的列表-一个包含最小值,另一个包含最大值。然后,我创建了一个循环,处理从0到包含最大值的列表的最大可能值的所有数字,并增加每个数字的计数。每次在学生的有利范围内减1。在这种特定情况下,我得到了该计数列表(对于上面给定的输入):n = int(input()) l = [] mi = [] ma = [] for i in range(n): x, y = input().split() mi.append(int(x)) ma.append(int(y)) if i == 0: h=ma[0] else: if ma[i]>h: h=ma[i] for i in range(h): c = 0 for j in range(len(mi)): if ma[j]>=i and mi[j]<=i: c+=1 l.append(c) great = max(l) for i in range(1,len(l)+1): if l[i]==great: print(i,l[i]) break
我的方法:
[1,2,3,3,4,4,3,3,2 ...]
等。所以我可以最终确定4是最大数量。的学生,并且列表中的第一个索引4是最低人数。需要的教科书。但是只有1个测试用例起作用,而两个失败。如果有人可以在这里帮助我,我将不胜感激。谢谢。 我刚刚使用Python完成了对Dcoder(“热爱数学”)的挑战。我没有通过两个测试用例,但是没有错。我使用了较低级别的Python进行相同的处理,就像我没有探索过的一样。...