做了 2 年程序员,目前在刷 leetcode, 发现了一个问题 例如
def solution(num):
numFriends = 0
for i in range(1,num):
divSum = self._div_sum(i)
if (i%50000 == 0): print(i)
if self._are_equivalent(i):
if i < divSum:
numFriends+=1
return numFriends
def _are_equivalent(n):
return (n == self._div_sum(_div_sum(n)))
def _div_sum(n):
divisors = [1]
for i in range(2, n):
if (n % i)==0:
divisors.append(i)
return sum(divisors)
当测试答案输入 num 为 10000 时代码运行 8s 出结果,而 20000 时 34s ;当输入为 100w 的时候虽然电脑的内存和 cpu 占用都不高但是运行的很慢,
迷思
- 如何提高本地运行速度
- leetcode 后台时如何实现 这种比较大的 loop test 的