给你一个整数数组 nums
,返回数组中最大数和最小数的 最大公约数 。
两个数的 最大公约数 是能够被两个数整除的最大正整数。
示例 1:
1 2 3 4 5 6
| 输入:nums = [2,5,6,9,10] 输出:2 解释: nums 中最小的数是 2 nums 中最大的数是 10 2 和 10 的最大公约数是 2
|
示例 2:
1 2 3 4 5 6
| 输入:nums = [7,5,6,8,3] 输出:1 解释: nums 中最小的数是 3 nums 中最大的数是 8 3 和 8 的最大公约数是 1
|
示例 3:
1 2 3 4 5 6
| 输入:nums = [3,3] 输出:3 解释: nums 中最小的数是 3 nums 中最大的数是 3 3 和 3 的最大公约数是 3
|
提示:
2 <= nums.length <= 1000
1 <= nums[i] <= 1000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Solution { public int findGCD(int[] nums) { int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for(int i = 0; i < nums.length; i++){ max = nums[i] > max ? nums[i] : max; min = nums[i] < min ? nums[i] : min; } return gcd(max, min); }
public int gcd(int num1, int num2){
while(num2 != 0){ int temp = num1 % num2; num1 = num2; num2 = temp; } return num1; } }
|