二、 算法分析
本系列博客基于“ (北京大学)数据结构与算法python版”慕课,课程在中国大学慕课和bilibili上均可找到。
1. 内容
- 描述算法时间复杂度的方法—大O表示法。
- 通过变位词判断问题的求解方法的分析,比较不同方法的复杂度。
- 简要叙述python中一些数据类型
- 介绍OJ系统
2. 课程代码
在GitHub中下载
3. OJ作业
所有代码均可在github中下载
3.1 A/B问题
给出两个整数,输出他们的商。可以使用以下语句实现整数n的输入: n=int(input())
输入格式: 两行,每行一个整数
输出格式: 输出一个数,即他们的商,保持小数点后3位(%.3f)
如果除数为0,则输出:NA(两个字母)
输入样例:
1
2
输出样例:
0.500
代码
a = int(input())
b = int(input())
if b == 0:
print('NA')
else:
print('%.3f' % (float(a)/float(b)))
3.2 打印实心矩形
题目内容:
给出行数和列数,打印一个由*号构成的实心矩形。
输入格式: 一行,用空格隔开的两个整数m、n
输出格式:由*号构成的m行n列实心矩形
输入样例:
3 2
输出样例:
**
**
**
代码:
m, n = list(map(int, input().split()))
for i in range(m):
print('*'*n)
3.3 找到最小的数
题目内容:
给定若干个整数,找出这些整数中最小的,输出。
输入格式: 一行,由空格隔开的一系列整数,数量2个以上。
输出格式:最小的整数
输入样例: 1 2 3 4 5 6 7 8 9 0
输出样例:0
输入样例:-1 2 0
输出样例:-1
代码:
n_list = list(map(int, input().split())) # 证书列表
min_num = n_list[0] # 初始化最小是第一个整数
for num in n_list:
if min_num > num:
min_num = num
print(min_num)