力扣解法汇总1447-最简分数
原题链接:力扣
描述:
给你一个整数 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-最简分数相关推荐
- 力扣解法汇总592-分数加减运算
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接: 力扣 ...
- 力扣解法汇总954-二倍数对数组
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...
- 力扣解法汇总728-自除数
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接: 力扣 ...
- 力扣解法汇总2043-简易银行系统
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms https://g ...
- 力扣解法汇总2315. 统计星号
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...
- 力扣解法汇总720-词典中最长的单词
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms https://g ...
- 力扣解法汇总764. 最大加号标志
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...
- 力扣解法汇总606-根据二叉树创建字符串
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms https://g ...
- 力扣解法汇总731-我的日程安排表 II
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...
- 力扣解法汇总648-单词替换
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...
最新文章
- 技能CDDemo(点击鼠标左键实现技能界面旋转)
- Spring boot请求拦截
- 【通知】深度学习之模型设计书籍勘误汇总!附赠资源和代码开源问题
- 职高学的计算机单招考试能换专业吗,2020年湖南中专生单招考大专能换专业吗?...
- pynlpir + pandas 文本分析
- 详细讲述STP过程【转自56cto.com】
- 基于javascript的asp数据库操作类,含分页、字符串截取、用户登陆验证[原创]
- Linux tp5伪静态设置
- 无法在WEB服务器上启动调试,Web 服务器配置不正确 解决
- [原创]将本地代码共享到github的操作步骤
- 定义druid工具类
- 要么战胜,要么战死,绝不投降
- easypr最新Linux,easyPR基本使用
- 保温杯市场前景分析及行业研究报告
- 知乎|10个程序员必备免费电子书下载网站
- 会计基础-会计账簿+对账+结账+财产清查+财务会计报告+会计核算程序
- 计算机表格的名次怎么弄,excel表格怎么给成绩排名
- 上云挑战及Mybase设计理念和关键特性
- LPCD是如何做到稳定自动卡片侦测功能的,FM17550/FM17522替代方案
- 卫星天顶角、入射角与方位角
热门文章
- python使用turtle库、绘制一个八角形_Python:turtle库的使用及图形绘制
- zip压缩指定文件、目录
- Python实现跳台阶(递归)
- Windows 7 开机原理
- GitHub删除仓库或修改仓库名
- LINUX系统如何修改时间
- Git push操作出现error: failed to push some refs的解决方法
- cannot use column (type Column) as type gorm.ColumnType in append:
- 查看linux系统重启时间
- Android EditText输入一串字符串自动每4个字符空一格,像输入银行卡卡号格式