PYTHON-“热爱数学”

问题描述 投票:1回答:2

我刚刚使用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


我的代码:] >>

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

我的方法:

我首先将两个最小值和最大值变量分配给两个不同的列表-一个包含最小值,另一个包含最大值。然后,我创建了一个循环,处理从0到包含最大值的列表的最大可能值的所有数字,并增加每个数字的计数。每次在学生的有利范围内减1。在这种特定情况下,我得到了该计数列表(对于上面给定的输入):[1,2,3,3,4,4,3,3,2 ...]等。所以我可以最终确定4是最大数量。的学生,并且列表中的第一个索引4是最低人数。需要的教科书。但是只有1个测试用例起作用,而两个失败。如果有人可以在这里帮助我,我将不胜感激。谢谢。

我刚刚使用Python完成了对Dcoder(“热爱数学”)的挑战。我没有通过两个测试用例,但是没有错。我使用了较低级别的Python进行相同的处理,就像我没有探索过的一样。...

python python-3.x testcase challenge-response
2个回答
3
投票

此问题类似于minimum platform problem


2
投票

@@ Vinay Gupta的逻辑和解释是正确的。如果您按照这些思路考虑,答案应该立即对您清楚。

© www.soinside.com 2019 - 2024. All rights reserved.