华为机试真题 python 实现租车骑绿岛2022.11 Q4新题

Posted MISAYAONE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试真题 python 实现租车骑绿岛2022.11 Q4新题相关的知识,希望对你有一定的参考价值。

目录

题目

思路

考点

Code


题目

【租车骑绿岛】100分
部门组织绿岛骑行团建活动。租用公共双人自行车,每辆自行车最多坐两人,做最大载重M。
给出部门每个人的体重,请问最多需要租用多少双人自行车。
输入描述:
第一行两个数字m、n,分别代表自行车限重,部门总人数。

第二行,n个数字,代表每个人的体重,体重都小于等于自行车限重m。
0<m<=200
0<n<=1000000
输出描述:
最小需要的双人自行车数量。

示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入

3 4
3 2 2 1

输出

3
 

思路

1:背包问题,贪心算法应该就可以解决了

第一步 先给人的体重排序

第二步 逐个按照贪心的思想去分配自行车

考点

1:贪心算法

Code

# coding:utf-8
import functools


#处理输入
input_param = [int(x) for x in input().split(" ")]
m = input_param[0]
n = input_param[0]
weights = [int(x) for x in input().split(" ")]

#第一步,单词内部调整
ordered_weights = sorted(weights, reverse=False)

min_bikes = 0
temp_weight = 0
for i in ordered_weights:
    if temp_weight<=m and temp_weight+ordered_weights[i] >=m:
        min_bikes += 1
        temp_weight = ordered_weights[i]
    else:
        temp_weight += ordered_weights[i]
print (min_bikes)

以上是关于华为机试真题 python 实现租车骑绿岛2022.11 Q4新题的主要内容,如果未能解决你的问题,请参考以下文章

华为机试真题 C++ 实现租车骑绿岛2022.11 Q4新题

华为机试真题 Java 实现租车骑绿岛2022.11 Q4新题

华为OD机试真题 JavaScript 实现租车骑绿岛2023 Q1 | 100分

华为OD机试真题 JavaScript 实现租车骑绿岛2023 Q1 | 100分

华为OD机试Golang解题 - 租车骑绿岛

独家华为OD机试提供C语言题解 - 租车骑绿岛