1979. Find Greatest Common Divisor of Array

Difficulty:
Related Topics:
Similar Questions:

Problem

Given an integer array nums, return** ****the *greatest common divisor* of the smallest number and largest number in **nums.

The greatest common divisor of two numbers is the largest positive integer that evenly divides both numbers.

  Example 1:

Input: nums = [2,5,6,9,10]
Output: 2
Explanation:
The smallest number in nums is 2.
The largest number in nums is 10.
The greatest common divisor of 2 and 10 is 2.

Example 2:

Input: nums = [7,5,6,8,3]
Output: 1
Explanation:
The smallest number in nums is 3.
The largest number in nums is 8.
The greatest common divisor of 3 and 8 is 1.

Example 3:

Input: nums = [3,3]
Output: 3
Explanation:
The smallest number in nums is 3.
The largest number in nums is 3.
The greatest common divisor of 3 and 3 is 3.

  Constraints:

Solution (Java)

class Solution {
    public int findGCD(int[] nums) {
        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;
        for (int num : nums) {
            if (max < num) {
                max = num;
            }
            if (min > num) {
                min = num;
            }
        }
        return findGCD(max, min);
    }

    private int findGCD(int x, int y) {
        int r;
        int a;
        int b;
        a = (x > y) ? x : y;
        b = (x < y) ? x : y;
        r = b;
        while (a % b != 0) {
            r = a % b;
            a = b;
            b = r;
        }
        return r;
    }
}

Explain:

nope.

Complexity: