★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10229952.html 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

Write a program to find the n-th ugly number.

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.

Example:

Input: n = 10
Output: 12
Explanation: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 10 ugly numbers.

Note:

  1. 1 is typically treated as an ugly number.
  2. n does not exceed 1690.

编写一个程序,找出第 n 个丑数。

丑数就是只包含质因数 2, 3, 5 的正整数。

示例:

输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。

说明:

  1. 1 是丑数。
  2. n 不超过1690。

16ms

 1 class Solution {
 2     func nthUglyNumber(_ n: Int) -> Int {
 3         if n == 1 { return 1}
 4         var val1 = 2
 5         var val2 = 3
 6         var val3 = 5
 7         var i1 = 0
 8         var i2 = 0
 9         var i3 = 0
10         var result = [1]
11         for i in 1 ..< n {
12             let current = min(min(val1, val2), val3)
13             result.append(current)
14             if current == val1 {
15                 i1 += 1
16                 val1 = result[i1] * 2
17             }
18             if current == val2 {
19                 i2 += 1
20                 val2 = result[i2] * 3
21             }
22             if current == val3 {
23                 i3 += 1
24                 val3 = result[i3] * 5
25             }
26         }
27         return result[n - 1]
28     }
29 }


20ms

 1 class Solution {
 2     func nthUglyNumber(_ n: Int) -> Int{
 3
 4         var res = [1]
 5         var i2 = 0, i3 = 0, i5 = 0
 6         while res.count < n {
 7             let m2 = res[i2]*2, m3 = res[i3]*3, m5 = res[i5]*5
 8             let mn = min(min(m2, m3), m5)
 9             if m2 == mn { i2 += 1 }
10             if m3 == mn { i3 += 1 }
11             if m5 == mn { i5 += 1 }
12             res.append(mn)
13         }
14         return res.last!
15     }
16 }


36ms

 1 class Solution {
 2     func nthUglyNumber(_ n: Int) -> Int {
 3         var res = [1]
 4         var i = 0
 5         var j = 0
 6         var k = 0
 7
 8         while res.count < n {
 9
10             res.append(res[i] * 2)
11             i += 1
12
13             while res[j] * 3 < res[i] * 2 || res[k] * 5 < res[i] * 2 {
14                 if res[j] * 3 < res[i] * 2 && res[j] * 3 < res[k] * 5 {
15                     if res[j] % 2 != 0 {
16                         res.append(res[j] * 3)
17                     }
18                     j += 1
19                 }
20                 else {
21                     if res[k] % 2 != 0 && res[k] % 3 != 0 {
22                         res.append(res[k] * 5)
23                     }
24                     k += 1
25                 }
26             }
27
28         }
29
30         return res[n-1]
31     }
32 }


44ms

 1 class Solution {
 2     func nthUglyNumber(_ n: Int) -> Int {
 3         var res = [1]
 4         var c2 = 0, c3 = 0, c5 = 0
 5         var t2, t3, t5: Int
 6         var minp: Int
 7
 8         for _ in 1 ..< n {
 9             t2 = res[c2] * 2
10             t3 = res[c3] * 3
11             t5 = res[c5] * 5
12             minp = min(t2, t3, t5)
13             if t2 == minp {
14                 c2 += 1
15             }
16             if t3 == minp {
17                 c3 += 1
18             }
19             if t5 == minp {
20                 c5 += 1
21             }
22             res.append(minp)
23         }
24
25         return res.last!
26     }
27 }

转载于:https://www.cnblogs.com/strengthen/p/10229952.html

[Swift]LeetCode264.丑数 II | Ugly Number II相关推荐

  1. 剑指offer:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。

    问题:把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 通俗易懂的 ...

  2. 丑数(Ugly Number)的判别和证明

    丑数 只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也是丑数.即因子中的所有质数范围在{2,3,5}之间,否则则不是丑数. 判断方法 首先除2 ...

  3. leetcode 264. Ugly Number II

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

  4. Leetcode264. Ugly Number II丑数2

    编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 ...

  5. leetcode264. 丑数 II

    编写一个程序,找出第 n 个丑数. 丑数就是质因数只包含 2, 3, 5 的正整数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 ...

  6. LeetCode - Medium - 264. Ugly Number II

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

  7. Lintcode 4 Ugly Number II

    原题如下: Ugly number is a number that only have factors 2, 3 and 5. Design an algorithm to find the nth ...

  8. [leetcode] Ugly Number II

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

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

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

  10. Leetcode--264. 丑数Ⅱ

    编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 ...

最新文章

  1. 乐高无限无法进入服务器,乐高无限6.13更新 无法进入游戏问题修复
  2. CentOS7 编译安装 gcc/c++ 9.1
  3. 如何从零开始搭建 CI/CD 流水线
  4. 用eclipse创建WebService项目
  5. ASP.NET MVC SignalR(1):背景
  6. SAP Fiori Launchpad tile里显示的数字的刷新间隔是在服务器端什么地方配置的
  7. 把男朋友变成儿子你只需要一秒
  8. 【机器学习】机器学习从零到掌握之十 -- 教你使用Python实现决策树
  9. OCEval-动态执行ObjectiveC的热修复方案
  10. jszip压缩文件上传到服务器,AngularJS - 使用JSZip压缩上传的pdf文件
  11. 12平键标准尺寸规格表_平键标准尺寸规格表
  12. 树莓派(RPi) CentOS7扩展内存卡剩余空间
  13. EXCEL数据组合的用法
  14. PostgreSQL checksum与Data Corruption
  15. Centos 7分区合并
  16. iPhone6 像素 分辨率
  17. 用html,js和css设计一个静态网页
  18. OSChina 周日乱弹 ——还是有个程序员女朋友好!
  19. Camunda撤回流程操作
  20. 使用Python计算股票期货,量化程序化交易

热门文章

  1. bootstrap 响应式布局
  2. 动态执行javascript代码
  3. 通过DBlink获取不同数据库数据
  4. MySQL呕血汇总--从基础到毕业【收藏篇】
  5. 03. Use const whenever possible
  6. Android进阶之利用Tablayout+ViewPager+Fragment实现神奇的滑动效果
  7. HTTP session的原理
  8. 正高职称 程序员_我985毕业33岁正高,职称评审哪里难?轻轻松松过职称
  9. 阿里 mysql内核_阿里云数据库内核组讲解MySQL中的两种临时表
  10. delphi调用python_Delphi使用Python来解码邮件