力扣-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 就是最简分数的分母和分子 。最后,将他们以列表形式返回即可

相关推荐
顾安r2 小时前
11.15 脚本算法 加密网页
服务器·算法·flask·html·同态加密
前端小L2 小时前
图论专题(四):DFS的“回溯”之舞——探寻「所有可能路径」
算法·深度优先·图论
司铭鸿2 小时前
数学图论的艺术:解码最小公倍数图中的连通奥秘
运维·开发语言·算法·游戏·图论
元亓亓亓3 小时前
LeetCode热题100--39. 组合总和
算法·leetcode·职场和发展
2401_841495643 小时前
【LeetCode刷题】找到字符串中所有字母异位词
数据结构·python·算法·leetcode·数组·滑动窗口·找到字符串中所有字母异位词
橘颂TA3 小时前
【剑斩OFFER】算法的暴力美学——寻找数组的中心下标
算法·leetcode·职场和发展·结构与算法
py有趣3 小时前
LeetCode算法学习之鸡蛋掉落
学习·算法·leetcode
放羊郎3 小时前
机器人自主导航方案概述
人工智能·算法·机器人·slam·建图
冷徹 .3 小时前
Edu144 CD
c++·算法
一水鉴天4 小时前
整体设计 全面梳理复盘 之37 元级自动化引擎三体项目(Designer/Master/Transformer)划分确定 + 自用规划工具(增强版)
开发语言·算法·transformer·公共逻辑