入学测试题
温馨提示:为检测自身的情况,请认真作答,不要进行上网搜答案
1. 实现冒泡排序
for i in range(len(nums)):
for j in range(0, len(nums) - i - 1):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
2. 二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
rows, cols = len(matrix), len(matrix[0])
row, col = 0, cols - 1
while row < rows and col >= 0:
if matrix[row][col] == num:
print(True)
elif matrix[row][col] < num:
row += 1
else:
col -= 1
3. 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
def gcd(m, n):
while n:
m, n = n, m % n
return m
def lcm(m, n):
return m * n // gcd(m, n)
def calculate(m, n):
return gcd(m, n), lcm(m, n)