蓝桥杯(2):python基础算法【上】
时间复杂度、枚举、模拟、递归、进制转换、前缀和、差分、离散化
1 时间复杂度
重要是看循环,一共运行了几次
1.1 简单代码看循环
#时间复杂度1
n = int(input())
for i in range(1,n+1):
for j in range(0,i):
pass
###时间复杂度:1+2+3+....+n=n(1+n)/2 所以时间复杂度是o(n^2)
#时间复杂度2
for i in range(1,n+1):
for j in range(0,n,i):
pass
###时间复杂度:n+ n/2+ n/3+ .....+n/n = nlog(n)
1.2 复杂代码
1.2.1 归并排序
通过不断地往回带入得出的:一共带入了多少次呢?
看n可以被多少个2整除就可以 个数为: ,则有
个o(n)叠加在一起,所以复杂度为o(nlogn)
2 枚举
2.1 定义
通过逐个尝试,遍历所有的解
2.2 流程
2.3 例子
注意字符串再 in上的伟大应用!!!!
2.3.1 简单计算
a = input()
sum1,sum2=0,0
for s in a:
if s in "aeiou":
sum1 +=1
else:
sum2+=1
print(sum1)
print(sum2)
2.3.2 洁净数
问题描述:小明不喜欢数字2,包括数位上包含数字2 的数,如果没有2则称为洁净数
n = int(input())
ans = 0
for i in range(1,n+1):
if "2" not in str(i):
ans+=1
print(ans)
2.3.3 扫雷【初用矩阵哦】
问题描述:
#枚举
def input_list():
return list(map(int,input().split()))
n_m = input_list()
n = n_m[0]
m = n_m[1]
a = []
for i in range(n):
a.append(input_list())
b = [[0]*m for i in range(n)] #生成n行m列的矩阵!
# print(b)
#表示方向
dir = [(1,0),(0,1),(-1,0),(0,-1),(-1,-1),(-1,1),(-1,1),(1,1)] #一共8个方向
for i in range(0,n):
for j in range(0,m):
if a[i][j] == 1:
b[i][j]=9
else:
b[i][j]=0
for k in range(8):
x,y = i+dir[k][0],j+dir[k][1]
if 0
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!





