首頁>技術>

題目

給你一個整數陣列 nums,請你返回該陣列中恰有四個因數的這些整數的各因數之和。

如果陣列中不存在滿足題意的整數,則返回 0 。

示例:輸入:nums = [21,4,7]輸出:32

解釋:21 有 4 個因數:1, 3, 7, 21

4 有 3 個因數:1, 2, 4

7 有 2 個因數:1, 7

答案僅為 21 的所有因數的和。

提示:1 <= nums.length <= 10^4

1 <= nums[i] <= 10^5

解題思路分析

1、遍歷;時間複雜度O(nlog(n)),空間複雜度O(1)

func sumFourDivisors(nums []int) int {	res := 0	for i := 0; i < len(nums); i++ {		sum := 0		count := 0		for j := 1; j*j <= nums[i]; j++ {			if nums[i]%j == 0 {				count++				sum = sum + j				if j*j != nums[i] {					count++					sum = sum + nums[i]/j				}			}		}		if count == 4 {			res = res + sum		}	}	return res}
總結

Medium題目,按照題目意思依次遍歷即可

14
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 「整合架構」我們得談談 Apache Camel