Problem: 2644. 找出可整除性得分最大的整数
Code
class Solution {
public:
int maxDivScore(vector<int>& nums, vector<int>& divisors) {
int n = divisors.size();
int m = nums.size();
sort(nums.begin(),nums.end(), greater<int>());
int mx = 0;
int cnt = 0;
for(int i = 0; i < n; i ++) {
int tmp = 0;
for(int j = 0; j < m && nums[j] >= divisors[i]; j ++) {
if(nums[j] % divisors[i] == 0) tmp++;
}
if(divisors[i] < divisors[cnt] && tmp == mx) cnt = i;
else if(tmp > mx) cnt = i;
mx = max(mx, tmp);
}
return divisors[cnt];
}
};