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

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

示例:

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

1 是丑数。
n 不超过1690。

思路:从1开始,需要对每个值都乘以2,3,5,然后判断大小把他们依次放入数组

设置三个指针位,各自独立地向后遍历,实现这个目标

提交的代码:

class Solution {
    public int nthUglyNumber(int n) {
        int x,y,z,i,j=1;
        int[] nums = new int[1690];
        nums[0] = 1;
        x = 0;
        y = 0;
        z = 0;
        for(i=1;i<n;i++)
        {
            j = java.lang.Math.min(nums[x]*2, java.lang.Math.min(nums[y]*3,nums[z]*5));
            if(nums[x]*2==j)
            {
                nums[i]=j;
                x++;
            }
            if(nums[y]*3==j)    //不可用else if,否则如果x位于第三个位置3处,y位于第二个位置2处,会出现重复的数字(2*3=3*2)
            {
                nums[i]=j;
                y++;
            }
            if(nums[z]*5==j)
            {
                nums[i]=j;
                z++;
            }       
        }
        return nums[n-1];
    }
}

完整的代码:
import java.util.Scanner;

public class Soluiton264 {
    public static int nthUglyNumber(int n) {
        int x,y,z,i,j=1;
        int[] nums = new int[1690];
        nums[0] = 1;
        x = 0;
        y = 0;
        z = 0;
        for(i=1;i<n;i++)
        {
            j = java.lang.Math.min(nums[x]*2, java.lang.Math.min(nums[y]*3,nums[z]*5));
            if(nums[x]*2==j)
            {
                nums[i]=j;
                x++;
            }
            if(nums[y]*3==j)
            {
                nums[i]=j;
                y++;
            }
            if(nums[z]*5==j)
            {
                nums[i]=j;
                z++;
            }       
        }
        return nums[n-1];
    }
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        int x = scanner.nextInt();
        System.out.println(nthUglyNumber(x));

}
}

Leetcode--264. 丑数Ⅱ相关推荐

  1. leetcode - 264. 丑数 II

    264. 丑数 II -------------------------------------------- 编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示 ...

  2. LeetCode 264. 丑数 II

    264. 丑数 II Ideas 竟然没想到用小根堆,白学了,再把小根堆抄一遍. Code Python class Solution:def nthUglyNumber(self, n: int) ...

  3. LeetCode 264. 丑数 II--动态规划

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

  4. Leetcode 264. 丑数 II 解题思路及C++实现

    方法一:暴力解法 解题思路: 直接从整数1开始,不断递增,判断该数字是否为丑数(专门写一个判断是否为丑数的函数),当遇到一个丑数,则计数值加1,直至遇到n个丑数为止. 当n很大时,这种暴力解法会遇到 ...

  5. 86. Leetcode 264. 丑数 II (动态规划-基础题)

    给你一个整数 n ,请你找出并返回第 n 个 丑数 .丑数 就是只包含质因数 2.3 和/或 5 的正整数.示例 1:输入:n = 10 输出:12 解释:[1, 2, 3, 4, 5, 6, 8, ...

  6. 78. Leetcode 264. 丑数 II (堆-技巧二-多路归并)

    给你一个整数 n ,请你找出并返回第 n 个 丑数 .丑数 就是只包含质因数 2.3 和/或 5 的正整数.示例 1:输入:n = 10 输出:12 解释:[1, 2, 3, 4, 5, 6, 8, ...

  7. leetcode 264. 丑数 II(堆)

    给你一个整数 n ,请你找出并返回第 n 个 丑数 . 丑数 就是只包含质因数 2.3 和/或 5 的正整数. 示例 1: 输入:n = 10 输出:12 解释:[1, 2, 3, 4, 5, 6, ...

  8. LeetCode 264.丑数 II(动态规划)

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

  9. LeetCode 263. 丑数 264. 丑数 II(DP)

    文章目录 1. LeetCode 263. 丑数 解题 2. LeetCode 264. 丑数 II DP解题 1. LeetCode 263. 丑数 编写一个程序判断给定的数是否为丑数. 丑数就是只 ...

  10. 【LeetCode】263.丑数 264. 丑数 II

    I. 263. 丑数(是否为丑数) 一.题目描述 编写一个程序判断给定的数是否为丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例 1: 输入: 6 输出: true 解释: 6 = 2 ...

最新文章

  1. android 应用程序分析之settings,Android 应用程序分析之Settings
  2. 猫狗识别——PyTorch
  3. Anaconda建立新的环境,出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url 解决过程
  4. Spring Boot 最核心的 3 个注解详解
  5. python列表_Python中列表(list)操作方法汇总
  6. 使用福禄克CFP单模光纤测试仪像专家一样设置参数!
  7. mysql cbo优化器_查询优化器介绍 - PolarDB-X 云原生分布式数据库 - 阿里云
  8. (44)FPGA时序逻辑与组合逻辑(组合逻辑)
  9. sql 缓冲池_监视SQL Server中的内存文员和缓冲池分配
  10. 顺序表的动态存储细节
  11. linux系统电脑接硬盘盒,在linux系统下添加新硬盘
  12. xp 远程桌面无法找到该计算机,XP系统中远程无法连接指定计算机的处理方法
  13. paip.突破 网站 手机 验证码 的 破解 总结
  14. 【相濡以沫、相忘于江湖】
  15. office:word在编辑内容时反应迟钝的解决办法
  16. 软通动力上市难掩隐忧,软件外包模式或受冲击
  17. 在iOS中进行Mapbox地图开发杂谈
  18. 关于Linux的应用层定时器
  19. 政府补贴政策这么多,ITSS信息技术服务标准到底是什么?
  20. cas351019-18-6|氟吡啶-3-硼酸|2-氟吡啶-5-硼酸|6-氟-3-吡啶硼酸

热门文章

  1. LintCode 802. 数独(回溯)/ LeetCode 37. 解数独
  2. LeetCode 722. CPP删除注释(逻辑题)
  3. LeetCode 496. 下一个更大元素 I(哈希)
  4. nrf52832芯片手册_nRF52832低功耗问题不完全总结
  5. python中_str_使用方法
  6. python中随机输入数字再排序
  7. java字符流写入式乱码_字节流乱码与字符流乱码
  8. reg类型变量综合电路_Verilog中reg型变量的综合效果(待补充)
  9. 系统错误_Win10系统提示0x80004005错误的解决方法
  10. 想成长为一名实战型架构师?7大实战技能经验分享