剑指offer 面试49题
2024-10-20 17:29:42
面试49题:
题:丑数
题目:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
解题代码一:时间效率不高,对每一个数都需要判断它是不是丑数(需要执行求余和除法操作)
# -*- coding:utf-8 -*-
class Solution:
def GetUglyNumber_Solution(self, index):
# write code here
if index<=0:
return 0 number=0
uglyFound=0
while (uglyFound<index):
number+=1
if self.IsUgly(number):
uglyFound+=1
return number def IsUgly(self,number):
while number%2==0:
number=number//2
while number%3==0:
number=number//3
while number%5==0:
number=number//5
return True if number==1 else False
解题代码二:推荐!“以空间换时间”
# -*- coding:utf-8 -*-
class Solution:
def GetUglyNumber_Solution(self,index):
if index<=0:
return 0
res=[1]
nextIndex=1
t2=t3=t5=0 while nextIndex<index:
min_val = min(res[t2]*2,res[t3]*3,res[t5]*5)
res.append(min_val)
while res[t2]*2 <= min_val:
t2 += 1
while res[t3]*3 <= min_val:
t3 += 1
while res[t5]*5 <= min_val:
t5 += 1
nextIndex+=1 return res[index-1]
最新文章
- 【转】 解读EOF
- JS第二天简单总结
- 总结css之内联图片的优缺点
- eclipse导出Runnable Jar File在Launch Configuration中找不到类
- 集合框架null与size=0
- erlang mnesia数据库设置主键自增
- Spring 创建 IOC 容器 ClassPathXmlApplicationContext 类
- VB6之HOOK技术
- Java学习笔记15(面向对象八:匿名对象、内部类)
- IdentityServer(13)- 添加JavaScript客户端
- Http请求小结
- ASP.NET没有魔法——ASP.NET MVC Razor与View渲染
- 仿照 ButterKnife 的 Android 注解实例
- javascript for循环 日期 select
- SkylineGlobe的PopupMessage里面嵌入的网页如何与主页面交互通讯
- 切换了webview 定位不了的解决方法 (还没有试,记录在此)
- iOS-【最新】跳转到 App Store 评分
- BZOJ 1113 海报 单调栈
- c++ 函数指针简单实例
- Python3.7.2,在Linux上跑来跑去的,是在升级打怪么?