class Solution { int gcd(int a, int b) { // 欧几里得算法 return b == 0 ? a : gcd(b, a % b); } public List simplifiedFractions(int n) { List ans = new ArrayList(); for (int i = 1; i
C++ 代码(欧几里得算法):
代码语言:javascript代码运行次数:0运行复制
class Solution {public: int gcd(int a, int b) { // 欧几里得算法 return b == 0 ? a : gcd(b, a % b); } vector simplifiedFractions(int n) { vector ans; for (int i = 1; i
Python 代码(欧几里得算法):
代码语言:javascript代码运行次数:0运行复制
class Solution: def gcd(self, a: int, b: int) -> int: # 欧几里得算法 return a if b == 0 else self.gcd(b, a % b) def simplifiedFractions(self, n: int) -> List[str]: ans = [] for i in range(1, n + 1): for j in range(i + 1, n + 1): if self.gcd(i, j) == 1: ans.append(f"{i}/{j}") return ans
登录后复制
TypeScript 代码(欧几里得算法):
代码语言:javascript代码运行次数:0运行复制
function gcd(a: number, b: number): number { // 欧几里得算法 return b == 0 ? a : gcd(b, a % b);}function simplifiedFractions(n: number): string[] { const ans = []; for (let i = 1; i
Java 代码(更相减损法):
代码语言:javascript代码运行次数:0运行复制
class Solution { int gcd(int a, int b) { // 更相减损法 while (true) { if (a > b) a -= b; else if (a simplifiedFractions(int n) { List ans = new ArrayList(); for (int i = 1; i
Java 代码(stein):
代码语言:javascript代码运行次数:0运行复制
class Solution { int gcd(int a, int b) { // stein if (a == 0 || b == 0) return Math.max(a, b); if (a % 2 == 0 && b % 2 == 0) return 2 * gcd(a >> 1, b >> 1); else if (a % 2 == 0) return gcd(a >> 1, b); else if (b % 2 == 0) return gcd(a, b >> 1); else return gcd(Math.abs(a - b), Math.min(a, b)); } public List simplifiedFractions(int n) { List ans = new ArrayList(); for (int i = 1; i 时间复杂度:枚举分子分母的复杂度为 O(n^2)