码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode1390

时间:2020-03-22 14:14:45      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:时间复杂度   就是   算法   range   算法思路   for   约数   color   code   

 1 class Solution:
 2     def sumFourDivisors(self, nums: List[int]) -> int:
 3         result = 0
 4         n = len(nums)
 5         for i in range(n):
 6             s = set()
 7             cur = nums[i]
 8             for j in range(1,int(cur ** 0.5) + 1):
 9                 if cur % j == 0:
10                     s.add(j)
11                     s.add(cur//j)
12             if len(s) == 4:
13                 result += sum(list(s))
14         return result

算法思路:求约数。

本题思路很简单,就是计算一个数字的约数。但是如果暴力求解,可能会超时。

每次计算出一个约数,则可以使用除法计算出另一个约数。这种策略可以将时间复杂度降低到O(sqrt(N))。

leetcode1390

标签:时间复杂度   就是   算法   range   算法思路   for   约数   color   code   

原文地址:https://www.cnblogs.com/asenyang/p/12545372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!