原题链接:力扣

描述:

给你一个整数 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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/simplified-fractions
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

* 解题思路:
* 一开始我理解错条件了,以为分母只能等于N。所以按照这个条件去写的。
* 找出N的所有质数。举个例子,比如10的话,就是2和5。
* 然后从0开始,
* 1没问题。
* 2的话在集合中,则跳过并且把2改成4。
* 3没问题,
* 4在集合中,则跳过把4改成6。
* 5在集合中,则跳过把5改成10。
* 就这样继续下去,则可以找出分母为N的所有结果。
* 理解对条件后,则多了一层遍历,对2到N之间的所有数执行一遍上面的操作,则得出最终结果。

代码:

public List<String> simplifiedFractions(int n) {//求所有的约数ArrayList<String> list = new ArrayList<>();for (int i = 2; i <= n; i++) {searchAdd(i, list);}return list;}public void searchAdd(int n, List<String> list) {//求所有的约数int k = 2;int localN = n;Set<Integer> set = new HashSet<>();while (k <= localN && k < n) {if (localN % k == 0) {set.add(k);localN = localN / k;continue;}k++;}Integer[] bases = new Integer[set.size()];Integer[] currents = new Integer[set.size()];set.toArray(bases);System.arraycopy(bases, 0, currents, 0, set.size());for (int i = 1; i < n; i++) {boolean isMatch = true;for (int j = 0; j < currents.length; j++) {if (i == currents[j]) {currents[j] += bases[j];isMatch = false;}}if (isMatch) {list.add(i + "/" + n);}}}

​力扣解法汇总1447-最简分数相关推荐

  1. 力扣解法汇总592-分数加减运算

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接: 力扣 ...

  2. ​力扣解法汇总954-二倍数对数组

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...

  3. ​力扣解法汇总728-自除数

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接: 力扣 ...

  4. 力扣解法汇总2043-简易银行系统

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms https://g ...

  5. ​力扣解法汇总2315. 统计星号

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...

  6. 力扣解法汇总720-词典中最长的单词

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms https://g ...

  7. ​力扣解法汇总764. 最大加号标志

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...

  8. ​力扣解法汇总606-根据二叉树创建字符串

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms https://g ...

  9. ​力扣解法汇总731-我的日程安排表 II

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...

  10. ​力扣解法汇总648-单词替换

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...

最新文章

  1. 技能CDDemo(点击鼠标左键实现技能界面旋转)
  2. Spring boot请求拦截
  3. 【通知】深度学习之模型设计书籍勘误汇总!附赠资源和代码开源问题
  4. 职高学的计算机单招考试能换专业吗,2020年湖南中专生单招考大专能换专业吗?...
  5. pynlpir + pandas 文本分析
  6. 详细讲述STP过程【转自56cto.com】
  7. 基于javascript的asp数据库操作类,含分页、字符串截取、用户登陆验证[原创]
  8. Linux tp5伪静态设置
  9. 无法在WEB服务器上启动调试,Web 服务器配置不正确 解决
  10. [原创]将本地代码共享到github的操作步骤
  11. 定义druid工具类
  12. 要么战胜,要么战死,绝不投降
  13. easypr最新Linux,easyPR基本使用
  14. 保温杯市场前景分析及行业研究报告
  15. 知乎|10个程序员必备免费电子书下载网站
  16. 会计基础-会计账簿+对账+结账+财产清查+财务会计报告+会计核算程序
  17. 计算机表格的名次怎么弄,excel表格怎么给成绩排名
  18. 上云挑战及Mybase设计理念和关键特性
  19. LPCD是如何做到稳定自动卡片侦测功能的,FM17550/FM17522替代方案
  20. 卫星天顶角、入射角与方位角

热门文章

  1. python使用turtle库、绘制一个八角形_Python:turtle库的使用及图形绘制
  2. zip压缩指定文件、目录
  3. Python实现跳台阶(递归)
  4. Windows 7 开机原理
  5. GitHub删除仓库或修改仓库名
  6. LINUX系统如何修改时间
  7. Git push操作出现error: failed to push some refs的解决方法
  8. cannot use column (type Column) as type gorm.ColumnType in append:
  9. 查看linux系统重启时间
  10. Android EditText输入一串字符串自动每4个字符空一格,像输入银行卡卡号格式