LeetCode264. Ugly Number II

LeetCode 264. Ugly Number II(丑数II) 题目: 思路1(超时): 这是最初的思路,因为丑数可以被2和3还有5整除直到为1,所以可以从1开始逐个去找并累加,分别用判断能否被2整除,如果可以就除2,再次重复这样的步骤,直到不能被2整除,再分别拿3和5做同样的事情。最终剩下的是1就说明这是一个丑数,用这样的方式去找第n个就可以了。这种方式很好理解,但是容易超时。因为它做了一些重复的事情,比如每个数都要追溯到不能被2和3还有5整除。 思路2(... 阅读详情
题目链接:

https://leetcode.com/problems/ugly-number-ii/

题目描述:

找出第n个丑数。
丑数:1是一个特殊的丑数,其次只含有2,3,5质因数的数被定义为丑数。

题目分析:

诶,自己做没做出来。

http://www.geeksforgeeks.org/ugly-numbers/
可以参考这个很详细哒。

根据动态规划的思想,当前的丑数肯定是由之前某个丑数乘2或乘3或乘4得到。这样就能得到一个生成链,麻烦的是这个生产链得是有序的。用三个指针idx2,idx3,idx4来保证有序。
且我们要保证每次迭代选择的都是最小的丑数。
factor2表示2*之前的某个丑数,idx2表示之前那个丑数的下标。当factor2被更新了,那么idx2指针也要前进一位。

代码:
class Solution {
public:
    int minAmongThree(int a,int b,int c){
        int minNum=a<b?a:b;
       return minNum<c?minNum:c;
    }
    int nthUglyNumber(int n) {
        vector<int> uglyNums(n,0);
        uglyNums[0]=1;
        int idx2,idx3,idx5;
        idx2=idx3=idx5=0;
        int factor2=1,factor3=1,factor5=1;
        for(int i=0;i<n;i++){
            uglyNums[i]=minAmongThree(factor2,factor3,factor5);
            if(factor2==uglyNums[i]){
                factor2=2*uglyNums[idx2++];
            }
            if(factor3==uglyNums[i]){
                factor3=3*uglyNums[idx3++];
            }
            if(factor5==uglyNums[i]){
                factor5=5*uglyNums[idx5++];
            }
        }
        return uglyNums[n-1];
    }
};
SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1) SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)Step 1 软件安装Step 2 硬件获取Step 3 开始从头到脚建一个工程Step 3.1 新建一个工程 从0开始学习FPGA,最好的办法就是先建一个最简单的模块,并且跑起来,然后再慢慢展开。下面这个例子是要按照一定的周期点亮核心板上的一个led。 Step 1 软件安装 这个从0开始学习是用的xilinx的SPARTAN6。SPARTAN6集成开发环境用ISE,不能用Vivado,各自对应的版本不同。安装 阅读详情

相关推荐

Fluent基于低氧舱气体交换仿真(氮气与空气混合)

一、背景概述 模拟低氧舱充氮气和排除混合气体的过程,假设注入95%的氮气,舱内原有气体为空气,压力为标准大气压,温度为300K。观察气体注入过程中,舱内平均氮气和氧气浓度的变化。 二、Fluent设置 Setup 1、General type选择压力基 绝对速度 瞬态 重力勾选 2、Model 能量方程开启 组分运输开启,设置方法如下: 选择后OK,view就会变成Edit,点击Edit。然后再次点击Edit。 将组分中的非氮气氧气和空气的气体移除,右边选项需要将空气放在最后一位。 3、Materi

qq_35535616的博客 1万+

leetcode:264. 丑数 II

题目来源 leetcode 题目描述 题目解析 暴力 要求找到最长的a[i]<a[i+1]<...+a[j]a[i] < a[i + 1] < ... + a[j]a[i]<a[i+1]<...+a[j],可以从每个a[i]a[i]a[i]开始,一直向后延伸找到最长的连续上升序列 时间复杂度O(N^2) 动态规划 (1)确定状态: 对于最优的策略,一定有最后一个元素a[j]a[j]a[j] 第一种情况:最优策略中最长连续上升子序列就是a[j]{a[j]}a[j]

OceanStar的博客 482

BQ25798双电源输入4节电池升降压充电与最大功率跟踪于光伏板应用

介绍一颗具有窄范围直流电压NVDC、路径管理PPMT、光伏板最大功率跟踪及反向放电OTG升降压充电控制器,带I2C接口能对内部寄存器做控制

linkedin_38804946的博客 1675

LeetCode 第264场周赛

本次周赛开幕雷击,题目难度并不高,但是第一题就很麻烦,一定程度上影响了参赛者的积极性。 本文小结一下周赛题目。 No 1 句子中的有效单词数 句子仅由小写字母(‘a’ 到 ‘z’)、数字(‘0’ 到 ‘9’)、连字符(’-’)、标点符号(’!’、’.’ 和 ‘,’)以及空格(’ ')组成。每个句子可以根据空格分解成 一个或者多个 token ,这些 token 之间由一个或者多个空格 ’ ’ 分隔。 如果一个 token 同时满足下述条件,则认为这个 token 是一个有效单词: 仅由小写字母、连字符和/

andyL_05的博客 2838

使用electron静默打印

使用electron静默打印 1.使用electron打印的理由 很多情况下程序中使用的打印都是用户无感知的。并且想要灵活的控制打印内容,往往需要借助打印机给我们提供的api再进行开发,这种开发方式非常繁琐,并且开发难度较大。 electron提供的打印api可以非常灵活的控制打印设置的显示,并且可以通过html来书写打印内容。 2.api ele...

w1366352655的博客 945

T100批处理作业开发

g_bgjob = ‘Y’ 后台执行g_bgjob = ‘N’ 前台执行。

weixin_43400895的博客 585

leetcode 264.丑数

每次取出三个指针对应位置的丑数乘以对应的因子,得到三个候选的下一个丑数,选择其中最小的作为下一个丑数加入数组中,并更新对应的指针和候选丑数。我们从第 1 个丑数开始,枚举从已有的丑数中乘以 2、3、5 得到的最小值,并将其加入数组 arr 中。接下来,我们维护三个指针 i2、i3 和 i5,分别指向数组中乘以 2、3 和 5 后得到的下一个丑数。

qq_45450889的博客 918

CADENCE 25.1打开元件库ERRORCannot perform the operation because of an exception.

摘要:解决CADENCE25.1打开元件库报错"ERRORCannotperformtheoperationbecauseofanexception"的方法:该错误通常由软件中文设置导致。解决方案为:进入Options→Preferences→MorePreferences,取消勾选两个本地语言选项后重启软件即可恢复正常。此方法简单有效,能快速解决因语言设置导致的元件库访问异常问题。(98字)

0 1011

leetcode264

看了其他同学的三指针法,没有看懂。 后面终于想通了,来写一写~ 思路其实是你一直都要找到最小的那个丑数,然后从它开始乘2,3,5; 但是只有能产出最小的丑数的idx可以++,因为其他两个数产出的是比最小的丑数要大的,所以先不加加,而产出的最小的丑数的idx则可以进行下一步操作,因为我们要开始找下一个最小的丑数了。 class Solution { public: int nthU...

剑似生平 228

汇川Easy系列斜坡函数功能块(支持状态输出)

IN rSetValue REAL 0.000000 0.000000 不保持 目标值 1IN rMaxValue REAL 0.000000 0.000000 不保持 最大目标值 2IN rMinValue REAL 0.000000 0.000000 不保持 最小目标值 3IN rSmoothTime REAL 100.000000 100.0000 不保持 最小到最大值平滑时间 单位 秒 4IN diTs DINT 10 10 不保持 函数调用周期采样时间中断时间 5。

RXXW_Dor的博客 455

uniapp - HBuilder提示adb: failed to install X Failure [INSTALL_ARSE_FAILED_NOT_APK:X(安装HBuilder调试基座失败)

安装HBuilderX调试基座失败,uniapp APP运行到手机adb: failed to install,Uniapp提示adb,uniapp ios 真机调试报错 uniapp安卓调试,Uniapp安装不了基座,手动安装基座,正在安装手机端HBuilder调试基座,点击运行到手机报错信息:基座无法正常安装,Uniapp-安装HBuilder调试基座失败解决方案,解决 HBuilderX 安卓基座安装失败的问题,显示adb报错,UniApp苹果真机运行调试(自定义基座,版本更新后/没有基座打开失败)如

🏆 前端领域优质创作者 8061

LeetCode:264. Ugly Number II - Python

问题描述: 264. 丑数 II 编写一个程序,找出第 n个丑数。 丑数就是只包含质因数2, 3, 5 的正整数。 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 说明: 1 是丑数。 n 不超过1690。 问题分析: -----------------------------------稍等片刻---...

Growth Diary 983

基于情感分析+聚类分析+LDA主题分析对服装产品类的消费者评论分析

本研究旨在通过对服装产品类的消费者评论进行综合分析,为企业提供更全面、更深入的市场洞察和决策支持。同时,本研究的方法和结果也可以为其他领域的消费者评论分析提供借鉴和参考。

m0_64336780的博客 2万+

Leetcode 264. Ugly Number II

Leetcode 264. Ugly Number II @(LeetCode)[LeetCode | Algorithm | DP] Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. ...

TooSchoolForCool 284

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

LeetCode: 264. Ugly Number II

LeetCode: 264. Ugly Number II 题目描述 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 Explanati...

杨领well的专栏 262

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[LeetCode]264. Ugly Number II

[LeetCode]264. Ugly Number II题目描述思路动态规划,题目313的简单版 题目313看这里 [LeetCode]313. Super Ugly Number代码#include<iostream> #include<vector> #include<algorithm>using namespace std;class Solution { public: i

Lcharon的博客 404

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

leetcode 264. Ugly Number II

关键是理解如何生成新的丑数。这道题和经典的斐波那契数列问题其实是一样的。求第n个数,需要用第n个数前面的数来求。不同的是,斐波那契数列不会重复。而本题的丑数,会重复出现。

weixin_41554427的博客 354

leetcode 264: Ugly Number II

Ugly Number II Total Accepted: 2920 Total Submissions: 15174 Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For

西施豆腐渣 6177

[Leetcode 264] Ugly Number II

Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 

coder 进阶的专栏 2873

leetcode 264. Ugly Number II

经典的找第几个丑数是啥 大一小孩都会 https://leetcode.com/problems/ugly-number-ii/ Write a program to find then-th ugly number. Ugly numbers arepositive numberswhose prime factors only include2, 3, 5. Example...

MissZhou要努力 264

leetcode263_264:Ugly Number & Ugly Number II

Ugly NumberWrite a program to check whether a given number is an ugly number.Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is not ugly

devbarry的专栏 758

【Leetcode】264. Ugly Number II

题目地址: https://leetcode.com/problems/ugly-number-ii/ 一个正整数是丑数,含义是它的素因子只有2,3,52,3,52,3,5。规定111是第111个丑数,问第nnn个丑数是几。 思路是多路归并。设丑数集合为SSS,考虑三个序列:S2=[2×1,2×2,2×3,...]=2SS3=[3×1,3×2,3×3,...]=3SS5=[5×1,5×2,5×3,...]=5SS_2=[2\times 1,2\times 2,2\times 3,...]=2S\\S_3=[

数学、算法爱好者的博客 323

[理解leetcode解法]264. Ugly Number II

[理解leetcode解法]264. Ugly Number II

存在感极其低下的弟弟 630

Leetcode 264(Ugly Number II)

QuestionWrite a program to find the nthn^{th} ugly number.Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the

senliuy的专栏 894

[leetcode] 264.Ugly Number II

题目: Write a program to find the n-th ugly number.Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 10

u014673347的专栏 759

LeetCode 264 Ugly Number II

题目描述Write a program to find the n-th ugly number.Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 10

Yano_nankai的博客 649
上一篇: LeetCode205. Isomorphic Strings
下一篇: PAT1077 Kuchiguse (20)
_IanXiao
博客等级 码龄12年 84粉丝 241原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值