【华为OD机试真题 Python】寻找身高相近的小朋友,输入 第一行为正整数H和N,0<H<200,为小明的身高,0<N<50,为新班级其他小朋友个数。 第二行为N个正整数H1-HN,分别是其他小朋友的身高,取值范围0<Hi<200(1<=i<=N),且N个正整数各不相同。输出排序结果,各正整数以空格分割。和小明身高差绝对值最小的小朋友排在前面,和小明身高差绝对值最大的小朋友排在最后,如果两个小朋友和小明身高差一样,则个子较小的小朋友排在前面。输入 100 10 95 96 97 98 99 101 102 103 104 105 输出 99 101 98 102 97103 96 104 95 105,请写出python实现代码
时间: 2023-03-14 16:55:16 浏览: 208
答:H = int(input()) # 读取小明的身高
N = int(input()) # 读取小朋友的个数
Hs = [int(x) for x in input().split()] # 读取小朋友的身高
Hs.sort(key=lambda x: abs(x-H)) # 按照身高差绝对值排序
print(' '.join([str(x) for x in Hs])) # 输出排序结果
相关问题
华为OD机试真题-寻找身高相近的小朋友-2023年OD统一考试(C卷)
根据提供的引用内容,我无法直接回答你关于华为OD机试真题的问题。引用提到了华为OD机试真题是华为公司用于筛选人才的一种方式,通过这种方式,华为公司可以更好地了解应聘者的技能和能力,从而更好地选择合适的人才。引用提到了华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Python语言进行更新解答,包含真题,思路分析,代码参考。
然而,你提到的具体题目"华为OD机试真题-寻找身高相近的小朋友-2023年OD统一考试(C卷)"并没有提供详细的题目描述和答案。所以我无法为你提供具体的解答。如果你能提供更详细的题目描述和要求,我将尽力帮助你解答。
【华为od机试真题 python】整数对最小和
这是一道经典的算法题,我们可以通过编写一个简单的Python函数来解决。
首先,我们定义一个名为min_pair_sum的函数,它接受一个整数数组作为输入。接着,我们初始化一个变量min_sum为无穷大,然后遍历数组中的每对整数,计算它们的和并将其与min_sum进行比较,如果这个和小于min_sum,就更新min_sum的值。最后,返回min_sum作为结果。
下面是一个Python函数的示例代码:
```python
def min_pair_sum(nums):
min_sum = float('inf')
for i in range(len(nums)):
for j in range(i+1, len(nums)):
pair_sum = nums[i] + nums[j]
if pair_sum < min_sum:
min_sum = pair_sum
return min_sum
```
我们可以使用这个函数来求解整数对最小和的问题,比如对于输入数组[1, 4, 3, 2],我们调用min_pair_sum([1, 4, 3, 2]),函数会返回2,因为1和2的和是最小的。
在实际的面试中,我们还可以进一步优化这个算法,比如在遍历数组时先对数组进行排序,然后只计算相邻的两个整数对的和,这样可以减少不必要的计算。总之,这道题目考察了我们对数组操作和算法优化的能力。
阅读全文