class Solution {
public:
int maxDivScore(vector<int>& nums, vector<int>& divisors) {
int cnt = -1, ans = 0;
for (int i = 0; i < divisors.size(); i ++ )
{
int tmp = 0;
for (int j = 0; j < nums.size(); j ++ )
{
if (nums[j] % divisors[i] == 0)
{
tmp ++;
}
}
if (tmp > cnt || (tmp == cnt && divisors[i] < ans))
{
ans = divisors[i];
cnt = tmp;
}
}
return ans;
}
};
该函数接受两个整数类型的向量
nums
和divisors
作为输入,并返回一个整数。函数遍历divisors
向量,并计算每个除数的分数,通过统计nums
向量中可被当前除数整除的元素数量来得到。分数就是可被除数整除的元素数量。然后,函数将当前除数的分数与迄今为止找到的最高分数(cnt
)进行比较,并在当前除数的分数更高或分数相同但除数小于当前答案时更新答案(ans
)