首页 > 解决方案 > 我怎样才能使它更有效率?如何衡量我的程序性能?

问题描述

问题是取一个输入 = n,然后取n与输出一样多的输入,如下所示:

公式的图像

这意味着:

f(1,1) → 1
f(1,2) → 3
f(1,3) → 6
f(2,2) → 2
f(2,3) → 5
f(3,3) → 3

answer = 1 + 3 + 6 + 2 + 5 + 3 = 20 → ans = 1+3+6+2+5+3 = 20

我想出的是:

def f(l,r):
     return int((r+l)*(r-l+1)/2)

n=int(input())

def WTF(n):
   ans = 0
   S=set()
   for i in range(n):
       S.add(int(input()))
   for i2 in S:
       for i3 in S:
           if i3>=i2:
                ans += f(i2,i3)
   return ans

print(WTF(n))

但由于超过了 1 秒的时间限制,没有被接受。

我怎样才能让它运行得更快?

标签: pythonperformancesetprocessing-efficiency

解决方案


推荐阅读