Python编程之数据结构与算法练习_001

Stella981
• 阅读 599

声明:题目出自《剑指Offer》。算法原理请自行找书撸, 不废话。直接上Python版本代码。

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

 1 #计算第1500个丑数
 2 #1,2,3,4,5
 3 import datetime
 4 
 5 startTime = datetime.datetime.now()
 6 
 7 uglyNumberList = [1]
 8 indexList = [[0,2], [0,3], [0,5]]
 9 
10 while len(uglyNumberList) <= 1500:
11     var = min(uglyNumberList[indexList[0][0]]*2, uglyNumberList[indexList[1][0]]*3, uglyNumberList[indexList[2][0]]*5)
12     for i in range(0, 3):
13         if uglyNumberList[indexList[i][0]]*indexList[i][1] == var:
14             indexList[i][0] += 1
15     else:
16         uglyNumberList.append(var)
17 else:   
18     deltaTime = datetime.datetime.now() - startTime
19     print("The 1500 ugly number is {}\nTime consuming is {} ms".format(uglyNumberList[-1], deltaTime.total_seconds()*1000))
点赞
收藏
评论区
推荐文章
DaLongggggg DaLongggggg
3年前
python刷题-特殊的数字
问题描述  153是一个非常特殊的数,它等于它的每位数字的立方和,即153111555333。编程求所有满足这种条件的三位十进制数。输出格式  按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。foriinrange(100,1000):astr(i)0bstr(i)1c
DaLongggggg DaLongggggg
3年前
python刷题-回文数
问题描述  1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。输出格式  按从小到大的顺序输出满足条件的四位十进制数。foriinrange(1000,10000):astr(i)ifaa::1:print(a)直接输出即可回文数fornin
DaLongggggg DaLongggggg
3年前
python-算法训练 区间k大数查询
问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式总共输出m行,每行一个数
Stella981 Stella981
3年前
PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。
Python练习标签:PythonPython练习题Python知识点二.使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的数,屏幕显示“太大了,请重新输入”如果小于预设的数,屏幕显示“太小了,请重新输入”如此循环,直到猜中,显示“恭喜你,猜中了!共猜
Stella981 Stella981
3年前
LeetCode(98): 验证二叉搜索树
Medium!题目描述:给定一个二叉树,判断其是否是一个有效的二叉搜索树。一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/\
Stella981 Stella981
3年前
279. 完全平方数 leetcode JAVA
题目:给定正整数 _n_,找到若干个完全平方数(比如 1,4,9,16,...)使得它们的和等于_n_。你需要让组成和的完全平方数的个数最少。示例 1:输入:_n_12输出:3解释:12444.示例2:输入:_n_13输出:2解释:134
Wesley13 Wesley13
3年前
MySQL自动化平台那些事
导读作者:田帅萌(邮箱:tplinux@163.com,欢迎交流)知数堂MySQLDBA班第9期优秀学员,Python运维开发班第5期学员,现任职知数堂助教承接上文《构建MySQL自动化平台思路》(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.w
Stella981 Stella981
3年前
PAT A1015Reversible Primes(可逆素数)
主要考察了判断一个10进制数是否为素数(isZS(intss))和怎么求一个十进制数的n进制数rec(intn,intm)代码:1include<cstdio2include<algorithm3include<iostream4include<string5
Stella981 Stella981
3年前
Python打牢基础练习练习题 + 答案
Python打牢基础练习练习题答案练习题(持续更新中)练习答案练习题(持续更新中)1、打印1000之内的三位数“水仙花数”,“水仙花数”是指组成这个数的每一位数的立方和等于其数,称为”水仙花数”例:153是一个水仙花数,1531_1_15_5_53_3_32、