题目:Ugly Number

正数中质因子只有2,3,5的数被称为"丑数"。判断一个数是不是"丑数"。

例如前十个最小的丑数:1 2 3 4 5 6 8 9 10 12

思路:

合数能表示成质数的积的形式,所以,丑数必然是只有2,3,5的因子。

bool LeetCode::isUgly(int num){for (size_t i = 2; i < 6 && num; i++){while (!(num % i)) num /= i;//循环除以[2,6]的数,最后为1,则是丑数
    }return num == 1;
}

题目:Ugly Number II

找到第n个丑数。

思路:

从第一个丑数开始向上找,知道找到第n个。

由上面的分析可以知道,丑数只是有2,3,5的因子,所以可以用2,3,5分别乘以一个丑数来得到新的丑数。

按照这种方式从小到大的求丑数,就可以了。

int LeetCode::nthUglyNumber(int n){if (n < 1)return 0;vector<int>uglys;//保存求出的丑数uglys.push_back(1);uglys.push_back(2);uglys.push_back(3);uglys.push_back(4);uglys.push_back(5);//前5个丑数if (n <= 5)return uglys.at(n - 1);int i2 = 2, i3 = 1, i5 = 1;//2,3,5分别乘以的uglys中的丑数的下标n -= 5;while (n){//求出第n个跳出循环int temp = min(uglys.at(i2) * 2, uglys.at(i3) * 3);temp = min(temp, uglys.at(i5) * 5);//找到最小的丑数
        uglys.push_back(temp);//因为可能是这三个数中的两个或三个的到的乘积,所以不能用else ifif (temp == uglys.at(i2) * 2)++i2;//判断是哪个2得到的新的丑数if (temp == uglys.at(i3) * 3)++i3;//判断是哪个3得到的新的丑数if (temp == uglys.at(i5) * 5)++i5;//判断是哪个5得到的新的丑数--n;}return uglys.at(uglys.size() - 1);
}

转载于:https://www.cnblogs.com/yeqluofwupheng/p/6786595.html

[LeetCode]Ugly Number相关推荐

  1. LeetCode Ugly Number II(丑数的计算)

    代码如下: public class Solution {public int nthUglyNumber(int n) {int[] primes = {2, 3, 5};int[] idx = n ...

  2. [leetcode] Ugly Number II

    public class Solution { public int nthUglyNumber(int n) {         int[] ugly=new int[n+10];         ...

  3. LeetCode Ugly Number

    题意:给出一个数,判断是否是丑数.质因数只包含2,3,5的 代码如下: public class Solution {public boolean isUgly(int num){if (num &l ...

  4. LeetCode 264. Ugly Number II--C++,Python解法

    题目地址:Ugly Number II - LeetCode Write a program to find the n-th ugly number. Ugly numbers are positi ...

  5. leetcode 263, 264, 1201, 313. Ugly Number I, II, III, Super Ugly Number(leetcode 丑数问题合集)

    263. Ugly Number https://leetcode.com/problems/ugly-number/ 本题题解由下面的 264. Ugly Number II 改造而来,所以效率会比 ...

  6. LeetCode - Medium - 264. Ugly Number II

    Topic Math Dynamic Programming Heap Description https://leetcode.com/problems/ugly-number-ii/ Analys ...

  7. leetcode 264. Ugly Number II

    传送门 264. Ugly Number II QuestionEditorial Solution My Submissions Total Accepted: 36259 Total Submis ...

  8. LeetCode 263. Ugly Number

    题目: Write a program to check whether a given number is an ugly number. Ugly numbers are positive num ...

  9. C#LeetCode刷题之#263-丑数(Ugly Number)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3862 访问. 编写一个程序判断给定的数是否为丑数.丑数就是只包含 ...

  10. Ugly Number leetcode java

    问题描述: Write a program to check whether a given number is an ugly number. Ugly numbers are positive n ...

最新文章

  1. Android Layer List 使用实现实例
  2. sql2000 的bcp命令
  3. 用CSS 给网页装潢[3] -构造文本
  4. angularjs与后台传值接收值
  5. python 调用 C语言函数
  6. hbase shell显示时间与系统时间不同
  7. 【Keil】使用Keil5时出现的错误(持续更新)
  8. 三八妇女节可以应用的PSD分层模板
  9. C++串行编程步骤介绍
  10. 012、JVM实战总结:案例实战:每日百万交易的支付系统,JVM栈内存与永久代大小又该如何设置?
  11. 前端性能毫秒必争综合方案
  12. Python 数据结构与算法——拓扑排序
  13. 从“如何设计用户超过1亿的应用”说起----数据库调优实战
  14. IOS开发之Target-Action模式
  15. JS中一些常用的函数(持续更新)
  16. 4款开源的中文分词系统
  17. matlab编程弹簧,弹簧设计计算程序分享
  18. 问卷调查系统的设计与实现
  19. Ubuntu安装mindoc
  20. oracle计算距离,根据坐标点的经纬度计算距离

热门文章

  1. 从Linux服务用命令直接拿文件保存到本机
  2. Android 动态显示和隐藏软键盘
  3. 非常的好的协同过滤入门文章(ZZ)
  4. R-基础测试(2)——在线帮助(转)
  5. 从零开始学ArcGIS Server(三)--如何创建一个个人地理数据库ArcSDE Personal geodatabase...
  6. Asp.Net Core 第03局:Startup
  7. 三、Oracle 查询+where条件
  8. win7 卸载虚拟机重装提示请您确认有足够的权限安装....
  9. java语言打印上三角和下三角,进一步得到九九乘法表
  10. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 主细表事务处理的标准例子...