C++零基础算法100题 - 找出数组的最大公约数

97 阅读1分钟

题目链接: 1979. 找出数组的最大公约数 - 力扣(LeetCode)

题目描述

image.png

实现步骤

  1. 我们得到了一个数组
  2. 我们求出他的最大值和最小值
  3. 传入一个求最大公约数的函数中去。
  4. 求出最大公约数,返回

代码实现

class Solution {
    int getFd(int maxv,int minv){
        for(int i=maxv;i>=1;i--){
            if(maxv%i==0&&minv%i==0){
                return i;
            }
        }
        return 1;
    }
public:
    int findGCD(vector<int>& nums) {
        int minv=10000,maxv=0;
        for(int i=0;i<nums.size();i++){
            minv=min(nums[i],minv);
            maxv=max(nums[i],maxv);
        }
        return getFd(maxv,minv);
    }
};