在测试用例上代码失败。(四分位数范围)

这是10日统计在Hackerrank上的一个挑战(https:/www.hackerrank.comchallengess10-interquartile-rangeproblem?h_r=next-challenge&h_v=zen)

任务:任务一个数组的四分位数范围是其第一(Q1)和第三(Q3)四分位数(即Q3 – Q1)之间的差值。

给定一个由n个整数组成的数组,X,和一个代表X元素各自频率的数组,F,构造一个数据集,S,其中每个xi发生的频率为fi。然后计算并打印S的四分位数范围,四舍五入到小数点后1位(即12.3格式)。

以下是我的代码。

n = int(input())
x = list(map(int, input().split()))

f = list(map(int, input().split()))

s = []

for i in range(len(x)):
    j = f[i]
    for k in range(j):
        s.append(x[i])
n = len(s)

s.sort()
if n%2 == 0:
    Q21 = s[n//2]
    Q22 = s[n//2 - 1]
    Q2 = (Q21 + Q22) / 2
else:
    Q2 = s[n//2]

LH = s[:n//2]
if n%2==0:
    UH = s[n//2:]
else:
    UH = s[n//2+1:]

Q1_len = len(LH)
Q3_len = len(UH)
if Q1_len%2 == 0:
    Q11 = LH[Q1_len//2]
    Q12 = LH[Q1_len//2 - 1]
    Q1 = (Q11 + Q12) / 2
else:
    Q1 = LH[Q1_len//2]

if Q3_len%2 == 0:
    Q31 = UH[Q3_len//2]
    Q32 = UH[Q3_len//2 - 1]
    Q3 = (Q31 + Q32) / 2
else:
    Q3 = UH[Q3_len//2]

print(round(Q3 - Q1,1))
# print(int(Q2))
# print(int(Q3))

下面是测试用例:用std输入。

5

10 40 30 50 20

1 2 3 4 5

预期的输出。

30.0

我的代码输出。

30.0 # I get this output on my code editor but not on Hackerrank

谁能帮帮我,我哪里错了?

我得到的输出是预期的,但它显示为失败。

解决方案:

print(float(Q3 - Q1))

基本上就是答案了。

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在Flutter上改变TextFormField的高度和字体颜色。

2022-9-8 16:41:38

未分类

将一个用户的表导入到另一个Oracle SQL中。

2022-9-8 16:52:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索