首页 > 其他分享 >【剑指 Offer】49. 丑数

【剑指 Offer】49. 丑数

时间:2023-04-28 10:33:18浏览次数:34  
标签:丑数 12 idx Offer int 49 10

【题目】

我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。

 

示例:

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

说明:  

    1 是丑数。
    n 不超过1690。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/chou-shu-lcof

【思路】

丑数是都是由1开始乘2、3、5组成的,那么我们只需要对这个序列进行排序然后计算到要输出的那一位即可。

 

【代码】

class Solution {
    public int nthUglyNumber(int n) {
       if(n==0){
           return 0;
       }
       int[] uglynum = new int[n];
       uglynum[0] = 1;
       int i=0,j=0,k=0;
//从1开始  用i,j,k分别指向相应的*2 *3 *5序列 for(int idx=1;idx<n;idx++){ int temp = Math.min(uglynum[i]*2,Math.min(uglynum[j]*3,uglynum[k]*5)); if(temp==uglynum[i]*2)i++; if(temp==uglynum[j]*3)j++; if(temp==uglynum[k]*5)k++; uglynum[idx]=temp; } return uglynum[n-1]; } }

 

标签:丑数,12,idx,Offer,int,49,10
From: https://www.cnblogs.com/End1ess/p/17361160.html

相关文章

  • 剑指 Offer 10- I. 斐波那契数列
     分析:偷个懒,上次做的一样的题代码:1classSolution(object):2deffib(self,n):3"""4:typen:int5:rtype:int6"""7ifn<2:8returnn9f=[0foriinra......
  • 排序:剑指 Offer 45. 把数组排成最小的数
    题目描述:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。  提示:0<nums.length<=100说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数拼接起来的数字可能会有前导0,最后结果不需要去掉前导0......
  • 【剑指 Offer】38. 字符串的排列
    【题目】输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例:输入:s="abc"输出:["abc","acb","bac","bca","cab","cba"]来源:力扣(LeetCode)链接:https://leetcode.cn/problems/zi-fu-chuan-de-pai-lie-......
  • P1495 【模板】中国剩余定理(CRT)/ 曹冲养猪
      #include<iostream>#include<algorithm>#include<cstring>#include<cmath>usingnamespacestd;#defineintlonglongintn,a[20],M[20],Mi[20];intgcd(inta,intb,int&x,int&y){if(b==0){x=1;y=0......
  • 【剑指 Offer】 59 - II. 队列的最大值
    【题目】请定义一个队列并实现函数max_value得到队列里的最大值,要求函数max_value、push_back和pop_front的均摊时间复杂度都是O(1)。若队列为空,pop_front和max_value需要返回-1示例1:输入:["MaxQueue","push_back","push_back","max_value","pop_front","max_va......
  • 【剑指 Offer】 59 - I. 滑动窗口的最大值
    【题目】给定一个数组nums和滑动窗口的大小k,请找出所有滑动窗口里的最大值。示例:输入:nums=[1,3,-1,-3,5,3,6,7],和k=3输出:[3,3,5,5,6,7]解释: 滑动窗口的位置               最大值---------------              -----[1 3 ......
  • 剑指 Offer II 017. 含有所有字符的最短字符串
    题目链接:剑指OfferII017.含有所有字符的最短字符串方法:同向双指针解题思路基本思路:统计\(t\)字符串中每个字符的个数,然后使用双指针遍历字符串\(s\),当窗口覆盖\(t\)中所有字符时,开始缩短左指针到可以到达的最右侧,取窗口最小的字符串为答案;需要考虑的问题:什么情况......
  • 代码随想录算法训练营第六天 | 242.有效的字母异位词 、349. 两个数组的交集 、 202.
    ......
  • 分治算法:剑指 Offer 25. 合并两个排序的链表
    题目描述:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 限制:0<=链表长度<=1000 解题思路:    classSolution{publicListNodemergeTwoLists(ListNodel1,ListNodel2){ListNodedum=newListNode......
  • H3C R4900 G5做RAID安装系统
    一、先进行BIOS设置HDM接口,通过HDM远程管理界面,按F10创建RAID 二、选择安装系统三、这样RAID1就创建好,如果还要创建RAID,再点“创建RAID” 四、再创建一个RAID5  五、创建完了RAID,然后返回到主页面,退出这个界面; 六、加载镜像文件,按F7选择从虚拟光驱引导; ......