LeetCode中等题之最简分数
生活随笔
收集整理的這篇文章主要介紹了
LeetCode中等题之最简分数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
給你一個(gè)整數(shù) n ,請(qǐng)你返回所有 0 到 1 之間(不包括 0 和 1)滿足分母小于等于 n 的 最簡(jiǎn) 分?jǐn)?shù) 。分?jǐn)?shù)可以以 任意 順序返回。
示例 1:
輸入:n = 2
輸出:[“1/2”]
解釋:“1/2” 是唯一一個(gè)分母小于等于 2 的最簡(jiǎn)分?jǐn)?shù)。
示例 2:
輸入:n = 3
輸出:[“1/2”,“1/3”,“2/3”]
示例 3:
輸入:n = 4
輸出:[“1/2”,“1/3”,“1/4”,“2/3”,“3/4”]
解釋:“2/4” 不是最簡(jiǎn)分?jǐn)?shù),因?yàn)樗梢曰?jiǎn)為 “1/2” 。
示例 4:
輸入:n = 1
輸出:[]
提示:
1 <= n <= 100
來(lái)源:力扣(LeetCode)
解題思路
??一個(gè)最簡(jiǎn)的分?jǐn)?shù),分子分母是沒有除了1之外的公因數(shù)的,所以可以利用求最大公因數(shù)來(lái)判斷是否是最簡(jiǎn)分?jǐn)?shù),如果分子分母最大公因數(shù)是1,那么就是最簡(jiǎn)分?jǐn)?shù),
class Solution:def simplifiedFractions(self, n: int) -> List[str]:if n==1:return []else:temp=['1/'+str(i) for i in range(2,n+1)]for i in range(n,1,-1):for j in range(2,i):if math.gcd(i,j)==1:temp.append(str(j)+'/'+str(i))return temp
總結(jié)
以上是生活随笔為你收集整理的LeetCode中等题之最简分数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之将句子排序
- 下一篇: LeetCode简单题之检查某单词是否等