python - 我怎样才能使它更有效率?如何衡量我的程序性能?
问题描述
问题是取一个输入 = 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 秒的时间限制,没有被接受。
我怎样才能让它运行得更快?
解决方案
推荐阅读
- reactjs - React 应用程序卸载如何在幕后工作?
- python - 如何将数字转换为带小数点和逗号的字符串
- swift - 如何从本机(swift)代码打开反应本机特定屏幕?
- node.js - 出现错误:模块“mailchimp-api-v3”未在 package.json 中列为依赖项
- flutter - 如何检查用户是否向左或向右滑动(可关闭)颤动
- css - Prime Ng 自动完成下拉位置不起作用
- javascript - 我正在尝试将图像添加到标签栏项目但未加载
- bluetooth - 通过在 VirtualBox 中运行的 Windows 访问我的 Mac 的蓝牙
- spring-mvc - HTTP 状态 403 - 未找到预期的 CSRF 令牌。会话是否已过期?
- java - 在junit窗口中运行maven测试