每日一題 最简分数
Posted Roam-G
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一題 最简分数相关的知识,希望对你有一定的参考价值。
难度中等
给你一个整数 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
通过次数22,357
提交次数33,159
Java
```
class Solution
public List<String> simplifiedFractions(int n)
List<String> ans = new ArrayList<String>();
for (int denominator = 2; denominator <= n; ++denominator)
for (int numerator = 1; numerator < denominator; ++numerator)
if (gcd(numerator, denominator) == 1)
ans.add(numerator + "/" + denominator);
return ans;
public int gcd(int a, int b)
return b != 0 ? gcd(b, a % b) : a;
python
class Solution:
def simplifiedFractions(self, n: int) -> List[str]:
return [f"numerator/denominator" for
denominator in range(2, n + 1) for
numerator in range(1, denominator)
if gcd(denominator, numerator) == 1]
以上是关于每日一題 最简分数的主要内容,如果未能解决你的问题,请参考以下文章