给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 。
两个数的 最大公约数 是能够被两个数整除的最大正整数。
2 <= nums.length <= 1000
1 <= nums[i] <= 1000
思路是先遍历数组,找出最大值和最小值,之后用辗转相除法求出最大公约数:
class Solution {
public:
int findGCD(vector<int>& nums) {
int max = 0, min = 1000;
for (int i : nums) {
if (i > max) {
max = i;
}
if (i < min) {
min = i;
}
}
while (min) {
int remainder = max % min;
max = min;
min = remainder;
}
return max;
}
};