classSolution { publicintfindGCD(int[] nums) { intmin= Integer.MAX_VALUE, max = Integer.MIN_VALUE; for (int num : nums) { min = Math.min(min, num); max = Math.max(max, num); }
return gcd(max, min); }
privateintgcd(int a, int b) { if (b == 0) { return a; }
return gcd(b, a % b); } }
Iterate
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
classSolution { publicintfindGCD(int[] nums) { intmin= Integer.MAX_VALUE, max = Integer.MIN_VALUE; for (int num : nums) { min = Math.min(min, num); max = Math.max(max, num); }
while (min != 0) { intx= max % min; max = min; min = x; }