通过数学推导,可以证明不需要约分,这里用最朴素的递归算法实现。
from math import gcd
class Solution:
def fraction(self, cont: List[int]) -> List[int]:
def helper(nums):
if (len(nums) == 1) : return [nums[0], 1]
A, B = helper(nums[1:])
a = nums[0] * A + B
b = A
c = gcd(a, b)
return [a//c, b//c]
return helper(cont)