【华为机试题】 [Python] 贪心的商人

news/2024/11/8 16:05:34 标签: 华为, python, windows

在这里插入图片描述

代码

python"># 其实就是贪心算法求每个商品的最大利润,最后再和商品数相乘就好了
from unittest.mock import patch


class Solution:
    def func(self, number, days, item_max_num, item_price):
        max_money = 0
        for i in range(number):
            max_money += item_max_num[i] * self.compute_max_price(item_price[i])
        print(max_money)
        return max_money

    def compute_max_price(self, price_list):
        # 获取单个商品的最大利润
        max_price = 0
        left_price = price_list[0]
        right_price = price_list[0]
        for cur_price in price_list[1:]:
            if cur_price > right_price:
                right_price = cur_price
            else:
                max_price += (right_price - left_price)
                left_price = cur_price
                right_price = cur_price
        if left_price != right_price:
            max_price += (right_price - left_price)
        print(price_list, max_price)
        return max_price



def input_args():
    number = int(input('number:'))
    days = int(input('days:'))
    item_max_num = list(map(int, input('item price:').split()))
    item_price = []
    for i in range(days):
        item_price.append(list(map(int, input('item price:').split())))

    return number, days, item_max_num, item_price


mock_input_lst = [
    "3",
    "3",
    "4 5 6",
    "1 2 3",
    "4 3 2",
    "1 5 3",
]
# mock_input_lst = [
#     "1",
#     "1",
#     "1",
#     "1",
# ]
with patch('builtins.input', side_effect=mock_input_lst):
    number, days, item_max_num, item_price = input_args()
s = Solution()
s.func(number, days, item_max_num, item_price)

http://www.niftyadmin.cn/n/5744116.html

相关文章

大数据数据存储层MemSQL, HBase与HDFS

以下是对 MemSQL、HBase 和 HDFS 的详细介绍,这些工具在分布式数据存储和处理领域有着重要作用。 1. MemSQL MemSQL(现称为 SingleStore)是一种分布式内存数据库,兼具事务处理(OLTP)和分析处理(OLAP)的能力,专为高性能实时数据处理设计。 1.1 核心特点 内存优先存储…

Unity中IK动画与布偶死亡动画切换的实现

在Unity游戏开发中,Inverse Kinematics(IK)是创建逼真角色动画的强大工具。同时,能够在适当的时候切换到布偶物理状态来实现死亡动画等效果,可以极大地增强游戏的视觉体验。本文将详细介绍如何在Unity中利用IK实现常规…

docker-compose.yml 文件来配置 Redis

你可以创建一个 docker-compose.yml 文件来配置 Redis,确保 Redis 在启动时使用指定的密码和相关配置。以下是配置文件的示例: version: 3.8services:redis:image: redis:latestcontainer_name: redis-serverports:- "6379:6379"environment:…

Spark中的宽窄依赖-宽窄巷子

1、什么是依赖关系? 2、什么是宽窄依赖? 窄依赖:Narrow Dependencies 定义:父RDD的一个分区的数据只给了子RDD的一个分区 【不用经过Shuffle】 特点:一对一或者多对一,不经过Shuffle,性能相对…

vue3 pdf base64转成文件流打开

vue3 pdf base64转成文件流打开 1、先下载依赖 “vue-pdf”: “^4.3.0”, “canvas”: “^2.11.2”, “pdfh5”: “^1.4.0”, “pdfjs-dist”: “2.5.207”, 2、文件流转换 const getList async () > {const res await TH36({query_type: 2,start_date: data.start_date,…

Hive面试题-- 查询各类型专利 top10 申请人及专利申请数

在数据处理中,尤其是涉及到专利信息等复杂数据时,Hive 是一个强大的工具。本文将详细介绍如何使用 Hive 查询语句来获取各类型专利 top10 申请人以及他们对应的专利申请数,以下是基于给定的 t_patent_detail 表结构的分析和查询步骤。 建表语…

如何用pycharm连接sagemath?

#世纪难题在我逃避刷CTF的这两天解决了# 1. 在本地linux上部署最新版的sagemath 推荐WSLdocker直接pull sagemath 2. pycharm中创建jupyter脚本,远程连接jupyter服务器 3. 运行cell并配置kernel 缺点:pycharm用自带的python编译器预处理代码&#xff0…

快速学习Python框架FastAPI

FastAPI是一种现代、快速(高性能)的Web框架,用于Python 3.6,使用Python类型提示构建API。它的设计初衷是帮助开发者在短时间内开发出高性能的API服务。FastAPI的灵感来源于许多高性能的编程框架,包括Express、Django R…