class Solution {
private final int mod=1000000007;
public int numFactoredBinaryTrees(int[] A) {
long res=0;
Map<Integer,Long> map=new HashMap();
Arrays.sort(A);
for(int t:A) map.put(t,1l);
for(int cur:A){
int max=(int)Math.sqrt(cur);
long count=map.get(cur);
for(int fac:A){
if(fac>max)break;
if(cur%fac!=0)continue;
if(map.containsKey(cur/fac)){
long t=map.get(fac)*map.get(cur/fac);
if(cur/fac!=fac)t=t*2;
count+=t;
}
map.put(cur,count);
}
res+=map.get(cur);
}
return (int)(res%mod);
}}
823 带因子的二叉树
最新推荐文章于 2024-06-18 16:27:13 发布