当前位置:网站首页>【剑指offer】面试题49:丑数
【剑指offer】面试题49:丑数
2022-07-27 14:24:00 【Jocelin47】

方法一:顺序判断
通过遍历从1开始的每个数字得到结果,算法效率不是很高
class Solution {
public:
int nthUglyNumber(int n) {
if( n <= 0 )
return 0;
int index_number = 0;
int Ugly_number = 0;
while ( Ugly_number < n)
{
++index_number;
if( IsUgly(index_number) )
Ugly_number++;
}
return index_number;
}
bool IsUgly(int number)
{
while( number % 2 == 0 )
number /= 2;
while( number % 3 == 0 )
number /= 3;
while( number % 5 == 0 )
number /= 5;
return ( number == 1 ) ? true : false;
}
};
方法二:空间换时间
前面的算法效率慢是因为不管他是不是丑数我们都需要对它进行运算。
所以可以试着去找只计算丑数的方法,不在非丑数的整数上花费时间。
class Solution {
public:
int nthUglyNumber(int n) {
vector<int> dp(n,0);
dp[0] = 1;
int p2 = 0,p3 = 0,p5 = 0;
for( int i = 1; i < n; i++ )
{
dp[i] = min( min( dp[p2]*2, dp[p3]*3), dp[p5]*5 );
if(dp[i] == dp[p2] * 2)
p2++;
if(dp[i] == dp[p3] * 3)
p3++;
if(dp[i] == dp[p5] * 5)
p5++;
}
return dp[n-1];
}
};
边栏推荐
- DIY ultra detailed tutorial on making oscilloscope: (1) I'm not trying to make an oscilloscope
- shell脚本读取文本中的redis命令批量插入redis
- Pictures to be delivered
- Spark TroubleShooting整理
- QT (five) meta object properties
- Deveco studio2.1 operation item error
- Inside router of network equipment hard core technology (10) disassembly of Cisco asr9900 (4)
- Leetcode 1143. dynamic programming of the longest common subsequence /medium
- 3D相关的简单数学知识
- Discussion on STM32 power down reset PDR
猜你喜欢

Leetcode-1737- minimum number of characters to change if one of the three conditions is met

西瓜书《机器学习》阅读笔记之第一章绪论

DIY ultra detailed tutorial on making oscilloscope: (1) I'm not trying to make an oscilloscope

STL value string learning

Spark TroubleShooting整理

Leetcode-1737-满足三条件之一需改变的最少字符数

Unity mouse controls the first person camera perspective

Four kinds of relay schemes driven by single chip microcomputer

generic paradigm

Method of removing top navigation bar in Huawei Hongmeng simulator
随机推荐
STM32F10x_硬件I2C读写EEPROM(标准外设库版本)
Singles cup, web:web check in
Network equipment hard core technology insider router Chapter 11 Cisco asr9900 disassembly (V)
EMC design scheme of CAN bus
Tools - common methods of markdown editor
DevEco Studio2.1运行项目报错
使用解构交换两个变量的值
QT (five) meta object properties
Network equipment hard core technology insider router Chapter 14 from deer by device to router (middle)
Spark 3.0 DPP实现逻辑
西瓜书《机器学习》阅读笔记之第一章绪论
《剑指Offer》剪绳子
reflex
Transactions_ Basic demonstrations and transactions_ Default auto submit & manual submit
4种单片机驱动继电器方案
Leetcode-1737-满足三条件之一需改变的最少字符数
Spark Filter算子在Parquet文件上的下推
Leetcode 74. search two-dimensional matrix bisection /medium
The design method of integral operation circuit is introduced in detail
Sword finger offer cut rope