华为OD试题八(数字序列比大小、矩阵元素边界值)

1. 数字序列比大小

华为OD试题八(数字序列比大小、矩阵元素边界值)_第1张图片
华为OD试题八(数字序列比大小、矩阵元素边界值)_第2张图片
示例代码:

# 核心 贪心 算法
# 测试数据
s = 3
s1 = [4,8,10]
s2 = [3,6,4]

def fun(s1,s2):
	# 统计结果
	count = 0
	# 分别排序
	s1.sort()
	s2.sort()
	cur = 0
	while cur < len(s2):
		tmp = None
		# 贪心 每次都找 比s2 大的 元素
		for i in s2:
			if i > s2[cur]:
				count += 1
				tmp = i
				break
		if tmp in s1:
			s1.remove(tmp)
		cur += 1
	
	print(count)
fun(s1,s2)

2. 矩阵元素的边界值

题目描述:
给定一个N*M矩阵,请先找出M个该矩阵中每列元素的最大值,然后输出这M个值
中的最小值
补充说明:
N和M的取值范围均为:[0, 100]

华为OD试题八(数字序列比大小、矩阵元素边界值)_第3张图片
示例代码

# 先列遍历 在行遍历
# 测试数据
s = '[[1,2],[3,4]]'
def fun(s):
	# 内建方法的运用
	s_list = eval(s)
	m_list = []
	col = 0
	while col < len(s_list[0]):
		tmp = []
		row = 0
		while row < len(s_list):
			tmp.append(s_list[row][col])
			row += 1
		m_list.append(max(tmp))
		col += 1
	return min(m_list)
	
r = fun(s)
print(r)

你可能感兴趣的:(OD试题,华为od,矩阵,线性代数,python)