日期:2026年7月18日
LeetCode 題目連結:1979. Find Greatest Common Divisor of Array
解題想法
簡單題。題目給一個陣列 $nums$,回傳陣列中最小值與最大值的最大公因數。因為 Python 與 C++ 都有找最小值、最大值、最大公因數的工具,可以一行解。如果不使用這些工具,也可以用一個 for 迴圈掃過 $nums$ 找最小值與最大值,另外再寫一個自訂函式用輾轉相除法求最大公因數。因為測資很小,兩種寫法都很快。
Python 程式碼
Runtime: 0 ms, beats 100.00%. Memory: 19.26 MB, beats 80.59%.
class Solution:
def findGCD(self, nums: List[int]) -> int:
return gcd(min(nums), max(nums))
Runtime: 0 ms, beats 100.00%. Memory: 19.27 MB, beats 80.59%.
class Solution:
def findGCD(self, nums: List[int]) -> int:
imin, imax = float('inf'), float('-inf')
for num in nums:
if num < imin:
imin = num
if num > imax:
imax = num
def mygcd(a, b):
while b:
a, b = b, a%b
return a
return mygcd(imin, imax)