要求
给你一个整数数组 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
核心代码
class Solution: def findGCD(self, nums: List[int]) -> int: max_ = max(nums) min_ = min(nums) x = gcd(max_, min_) return x
第二种解法
class Solution: def findGCD(self, nums: List[int]) -> int: max_ = max(nums) min_ = min(nums) return self.my_gcd(max_, min_) def my_gcd(self, a: int, b: int) -> int: while b > 0: tmp = a % b a = b b = tmp return a
解题思路:第一种解法:我们直接调库gcd进行操作,求得最大公约数;第二种解法:我们不断的循环取余的操作得到最大公约数,手动写gcd。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjyfx/16349.html