1、 由于他要求返回一个向量,且向量中的两个数字为num+1,num+2的因子对中两因子差的绝对值最小的,也就是大小最接近的因子。
所以我们可以枚举num+1和num+2的所有因子对,且用min记录最小的绝对差,而此时的向量中的两个数字是绝对差为min的两个因子。
class Solution {
public:
vector<int> closestDivisors(int num) {
vector<int> nums(2,0);
int min=-1;
for(int i=num+1;i<=num+2;++i)
for(int j=1;j*j<=i;++j)
{
if(i%j) continue;
if(min==-1||abs(i/j-j)<min)
{
min=abs(i/j-j);
nums[0]=j;
nums[1]=i/j;
}
}
return nums;
}
};