You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化Python程序以通过CSES习题1621的时间限制?

优化方案:将时间复杂度降至O(n)

你的代码超时的核心原因是时间复杂度过高:每次循环都要遍历整个列表删除相同元素,最坏情况下(所有元素均不重复)时间复杂度为O(n²),面对大数据量(如n=10^5)必然触发超时。

最优解法:利用集合自动去重

Python的set结构会自动过滤重复元素,直接获取集合的长度就是题目要求的不同元素数量,时间复杂度为O(n):

n = int(input())
integers = list(map(int, input().split()))
print(len(set(integers)))

备选解法:统计元素频率

如果需要额外获取每个元素的出现次数,可以使用collections.Counter,最终取键的数量即可,同样保持O(n)时间复杂度:

from collections import Counter

n = int(input())
integers = list(map(int, input().split()))
print(len(Counter(integers)))

原代码问题补充

  1. 时间效率瓶颈:每次循环生成新列表都要遍历全部元素,重复操作导致时间开销呈指数级增长
  2. 语法错误:count变量未初始化,运行时会抛出NameError

内容的提问来源于stack exchange,提问作者user20954198

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 23:22:07