Given an integer n
, return a list of all simplified fractions between 0 and 1 (exclusive) such that the denominator is less-than-or-equal-to n
. The fractions can be in any order.
Example 1:
Input: n = 2 Output: ["1/2"] Explanation: "1/2" is the only unique fraction with a denominator less-than-or-equal-to 2.
Example 2:
Input: n = 3 Output: ["1/2","1/3","2/3"]
Example 3:
Input: n = 4 Output: ["1/2","1/3","1/4","2/3","3/4"] Explanation: "2/4" is not a simplified fraction because it can be simplified to "1/2".
Example 4:
Input: n = 1 Output: []
Constraints:
1 <= n <= 100
Solution: GCD
if gcd(a, b) == 1 then a/b is a simplified frication.
std::gcd is available since c++17.
Time complexity: O(n^2logn)
Space complexity: O(1)
C++
1 2 3 4 5 6 7 8 9 10 11 12 |
// Author: Huahua class Solution { public: vector<string> simplifiedFractions(int n) { vector<string> ans; for (int i = 1; i < n; ++i) for (int j = i + 1; j <= n; ++j) if (gcd(i, j) == 1) ans.push_back(to_string(i) + "/" + to_string(j)); return ans; } }; |
请尊重作者的劳动成果,转载请注明出处!花花保留对文章/视频的所有权利。
如果您喜欢这篇文章/视频,欢迎您捐赠花花。
If you like my articles / videos, donations are welcome.
Be First to Comment