题目
一个商人有一个有限的仓库空间,他需要在指定的天数内通过买卖商品来最大化其利润。每种商品都有其特定的价格和仓库存储上限。你的任务是计算商人在给定的天数内可以获得的最大利润。
输入描述:
商品的数量 number(例如:3)。
商品售货的天数 days(例如:3)。
number 个整数,代表每种商品在仓库中的最大存储量(例如:4 5 6)。
接下来的 number 行,每行有 days 个整数,代表每种商品每天的价格。
输出描述:
一个整数,代表商人在 days 天内可以获得的最大利润。
示例:
输入:
3
3
4 5 6
1 2 3
4 3 2
1 5 3
输出:
32
代码
// 定义函数计算最大利润
function maxProfit(item_number, days, max_items, prices) {
let max_profit = 0; // 初始化最大利润为0
// 遍历每一种商品
for (let i = 0; i < item_number; i++) {
let min_price = prices[i][0]; // 将每种商品的第一天价格作为初始的最小价格
let profit_for_item = 0; // 初始化每种商品的最大利润为0
// 遍历每天的价格
for (let j = 1; j < days; j++) {
// 更新商品的最低价格
min_price = Math.min(min_price, prices[i][j]);
// 计算当前最大利润:当前价格减去最小价格
profit_for_item = Math.max(profit_for_item, prices[i][j] - min_price);
}
// 累加每种商品的最大利润到总利润中
max_profit += profit_for_item * max_items[i];
}
return max_profit; // 返回总的最大利润
}
const item_number = 3; // 商品数量
const days = 3; // 商品售卖的天数
const max_items = [4, 5, 6]; // 每种商品的最大存储量
const prices = [
// 每种商品每天的价格
[1, 2, 3],
[4, 3, 2],
[1, 5, 3],
];
console.log(maxProfit(item_number, days, max_items, prices));