做了 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 占用都不高但是运行的很慢,
迷思
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.