当前位置:   article > 正文

华为OD试题八(数字序列比大小、矩阵元素边界值)_华为od 给定一个n*m矩阵,请先找出m个该矩阵中每列元素的最大值,然后输出这m个值中

华为od 给定一个n*m矩阵,请先找出m个该矩阵中每列元素的最大值,然后输出这m个值中

1. 数字序列比大小

在这里插入图片描述
在这里插入图片描述
示例代码

# 核心 贪心 算法
# 测试数据
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

2. 矩阵元素的边界值

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

在这里插入图片描述
示例代码

# 先列遍历 在行遍历
# 测试数据
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/506980
推荐阅读
相关标签
  

闽ICP备14008679号