力扣-LCP 02.分式化简

题解:

python 复制代码
class Solution:
    def fraction(self, cont: List[int]) -> List[int]:
        # 初始化分子和分母为 0 和 1
        n, m = 0, 1
        # 从最后一个元素开始遍历 cont 列表
        for a in cont[::-1]:
            # 更新分子和分母,分别为 m 和 (m * a + n)
            n, m = m, (m * a + n)
        # 返回最终的分数表示,分子为 m,分母为 n
        return [m, n]

解释:

这段代码实现了一个将分数转换为最简分数的功能。连分数是一种特殊的分数表示方式,由整数部分和一个或多个连续的分数部分组成,其中每个分数部分都是一个整数加上前面所有分数部分的倒数。

例如:连分数7,7,15,1表示的数学表达式是"3 + 1 / ( 7 + 1 / (15 + 1/1 ))",我们要将这样的分数转换为普通的最简分数形式。

代码中的 "cont"参数是一个整数列表,表示连分数的系数。我们从连分数的最后一个系数开始遍历,这样可以逐步计算出最简分数的分子和分母。

首先,我们初始化分子"n"和"0" 分母" m"和"1",然后,从最后一个系数开始,我们将分母乘以当前系数a 再加上分子,得到新的分母;同时,将旧的分母赋值给新的分子。这样我们就得到了下一个分数部分的分母和分子。

通过不断迭代这个过程,偶们最终得到的m 和 n 就是最简分数的分母和分子 。最后,将他们以列表形式返回即可

相关推荐
GeekZHR13 分钟前
C语言指针2:数组名、二级指针、指针数组,一次把“指针和数组“讲透
c语言·数据结构·算法·指针
h_a_o777oah16 分钟前
【算法基础】卡特兰数:递推定义与折线对称公式推导及解题策略
c++·算法·acm·组合数学·卡特兰数·反射原理·动态规划dp
JAI科研24 分钟前
Deepseek Agent Harness教程(二) | DeepSeek Harness 设计思路
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·vllm
还不秃顶的计科生30 分钟前
具身智能论文学习10:π0: A Vision-Language-Action Flow Model for General Robot Control
人工智能·深度学习·算法·机器学习·语言模型·vla·vlm
Dr.kangder32 分钟前
嵌入式面试总结(二十一)——C语言关键字
c语言·开发语言·面试·职场和发展·架构·虚拟化
happyprince37 分钟前
02-具体观 — Cordis 算法与实现剖析
算法
烬羽42 分钟前
求第 K 大,为什么反而要用最小堆?
javascript·数据结构·算法
没落之王1 小时前
易学使者郑氏正脉郑冰推演马航事件
大数据·人工智能·算法·机器学习·可用性测试
阿部多瑞 ABU2 小时前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#
郝学胜-神的一滴2 小时前
并查集深度入门:从玄学抽象到 QuickFind & QuickUnion 源码实战
数据结构·c++·python·程序人生·算法·软件开发