面试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]

最新文章

  1. 【转】 解读EOF
  2. JS第二天简单总结
  3. 总结css之内联图片的优缺点
  4. eclipse导出Runnable Jar File在Launch Configuration中找不到类
  5. 集合框架null与size=0
  6. erlang mnesia数据库设置主键自增
  7. Spring 创建 IOC 容器 ClassPathXmlApplicationContext 类
  8. VB6之HOOK技术
  9. Java学习笔记15(面向对象八:匿名对象、内部类)
  10. IdentityServer(13)- 添加JavaScript客户端
  11. Http请求小结
  12. ASP.NET没有魔法——ASP.NET MVC Razor与View渲染
  13. 仿照 ButterKnife 的 Android 注解实例
  14. javascript for循环 日期 select
  15. SkylineGlobe的PopupMessage里面嵌入的网页如何与主页面交互通讯
  16. 切换了webview 定位不了的解决方法 (还没有试,记录在此)
  17. iOS-【最新】跳转到 App Store 评分
  18. BZOJ 1113 海报 单调栈
  19. c++ 函数指针简单实例
  20. Python3.7.2,在Linux上跑来跑去的,是在升级打怪么?

热门文章

  1. Atitit.创建快捷方式&#160;windows快捷方式的原理
  2. Atitit.php&#160;opcode虚拟机指令集&#160;分类以及详细解释
  3. 2. Add Two Numbers【medium】
  4. SpringBoot整合Quartz
  5. CronTrigger中cron表达式使用
  6. 四个 jQuery 方法:
  7. Eclipse 快速修复
  8. 怎么获取Android应用程序的上下文
  9. makefile编写---单个子目录编译模板
  10. 【直播预告】7月18日3D游戏引擎免费公开课答疑,參与送C币!