Python 计算“以下的奇数”;";有效地
给定一个数n,返回n以下的正奇数Python 计算“以下的奇数”;";有效地,python,python-3.x,Python,Python 3.x,给定一个数n,返回n以下的正奇数 oddCount(7) //=> 3, i.e [1, 3, 5] oddCount(15) //=> 7, i.e [1, 3, 5, 7, 9, 11, 13] 我的代码需要更多的时间来执行larget计数。 有人能提出一种方法来提高时间效率吗 def奇数计数(n): count_odd=[如果num%2!=0,则范围(0,n)中num的num为num] 计数奇数=len(计数奇数) 打印(单数) 执行超时 斯特德尔 执行超时(12000毫秒
oddCount(7) //=> 3, i.e [1, 3, 5]
oddCount(15) //=> 7, i.e [1, 3, 5, 7, 9, 11, 13]
我的代码需要更多的时间来执行larget计数。
有人能提出一种方法来提高时间效率吗
def奇数计数(n):
count_odd=[如果num%2!=0,则范围(0,n)中num的num为num]
计数奇数=len(计数奇数)
打印(单数)
执行超时
斯特德尔
执行超时(12000毫秒)
为什么我的代码超时了
我们的服务器配置为只允许您的代码执行一定的时间。在极少数情况下,服务器可能会承担太多的工作,根本无法足够有效地运行代码。大多数情况下,虽然这个问题是由低效的算法引起的。如果多次看到此错误,则应尝试进一步优化代码
您只需数数数字即可:
n//2
您的算法当然有效,但正如注释中所指出的,您所需要的只是楼层划分
def count_odds_below(n):
return n//2
这比您的算法更快,并且可以轻松处理大量数据
例如:
print(count_odds_below(15))
这可以打印7。请解释为什么你不打印(n//2)你也可以打印
len(范围(1,n,2))
为什么你需要添加n%2
?我认为n本身就是个数。我的错。