0
点赞
收藏
分享

微信扫一扫

【LeetCode】1447. 最简分数

晴儿成长记 2022-02-10 阅读 177

题目

  1. 最简分数

给你一个整数 n ,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于 n最简 分数 。分数可以以 任意 顺序返回。

示例 1:

输入:n = 2
输出:["1/2"]
解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。

示例 2:

输入:n = 3
输出:["1/2","1/3","2/3"]

示例 3:

输入:n = 4
输出:["1/2","1/3","1/4","2/3","3/4"]
解释:"2/4" 不是最简分数,因为它可以化简为 "1/2" 。

示例 4:

输入:n = 1
输出:[]

提示:

  • 1 <= n <= 100

思路

  • 循环遍历所有情况,若分子与分母最大公因数为1,则不可约分

代码

from math import gcd
from typing import List


class Solution:
    def simplifiedFractions(self, n: int) -> List[str]:
        res = []
        for i in range(2, n+1):
            for j in range(1, i):
                if gcd(i,j) < 2:
                    res.append(str(j)+"/"+str(i))
        return res

复杂度

  • 时间复杂度: O ( n 2 log ⁡ n ) O(n^2\log n) O(n2logn)
  • 空间复杂度: O ( n ) O(n) O(n)
举报

相关推荐

0 条评论