恭喜发现宝藏!微信搜索公众号【TechGuide】关注更多新鲜好文和互联网大厂的笔经面经。 作者@TechGuide【全网同名】 点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝
文章目录
提示
- 提示
- 第一道:喜爱值最大(100%)
- 题目描述
- 参考代码:
- Python版本(90%)
- CPP版本
- 第二道: 商品综合(100%)
- 题目描述
- 参考代码
- 第三道:连连看
- 题目描述
- 参考代码
- 华为最后一次机试在8月25日
- 满100分即有面试机会,不必过于纠结分数
第一行:输入总金钱money,商品数量n 此后的n行:(每行代表一个商品,数值分别代表,商品价格、商品可买数量、商品喜爱值) 商品价格 商品数量 商品喜爱值 p1 n1 like1 p2 n2 like2 … 问:如何购买能让喜爱值最大
参考代码: Python版本(90%)贪心
# priority代表性价比高如果喜爱值/价格越高则选择优先级最高优先购买
money,kind_num = [int(x) for x in input().split(]
price = [0] * kind_num
nUm = [0] * kind_num
like = [0] * kind_num
priority = [0] * kind_num
for i in range(kind. num):
price[i], num[i], like[i] = [int(x) for x in input().split()]
priority[i] = Like[i] / price[i]
#按照优先级高的倒序取出idx方便遍历
sort_result = sorted(enumerate(priority),key=lambda x: x[1], reverse=True)
sorted_ idx = [x[0] for x in sort_result]
ans=0
for idx in sorted_idx:
#选取了优先级高的
price_one = price[idx]
num_one = num [idx]
like_one = like [idx]
num_can_buy = max(0, math.floor(money/price_one)
if num_can_buy == 0:
continue
elif num_can_buy > X >> N;
vector food(N, vector(3, 0));
for (int i = 0; i > food[i][0] >> food[i][1] >> food[i][2];
}
// 01背包问题 dp[x]表示选取X元零食可达到的最大喜爱度
vector dp(X + 1, 0);
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?