文章目录
- 1. 题目
- 2. 解题
1. 题目
给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 。
两个数的 最大公约数 是能够被两个数整除的最大正整数。
示例 1:
输入:nums = [2,5,6,9,10]
输出:2
解释:
nums 中最小的数是 2
nums 中最大的数是 10
2 和 10 的最大公约数是 2示例 2:
输入:nums = [7,5,6,8,3]
输出:1
解释:
nums 中最小的数是 3
nums 中最大的数是 8
3 和 8 的最大公约数是 1示例 3:
输入:nums = [3,3]
输出:3
解释:
nums 中最小的数是 3
nums 中最大的数是 3
3 和 3 的最大公约数是 3提示:
2 <= nums.length <= 1000
1 <= nums[i] <= 1000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-greatest-common-divisor-of-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
class Solution:def findGCD(self, nums: List[int]) -> int:nums.sort()return math.gcd(nums[0], nums[-1])
36 ms 15.1 MB Python3
class Solution {
public:int findGCD(vector<int>& nums) {sort(nums.begin(), nums.end());return __gcd(nums[0], nums.back());}
};
4 ms 12.1 MB C++
class Solution { // 自己实现gcd
public:int findGCD(vector<int>& nums) {sort(nums.begin(), nums.end());return mygcd(nums[0], nums.back());}int mygcd(int x, int y){int r;while(y){r = x%y;x = y;y = r;}return x;}
};
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!