LeetCode每日一题(1402. Reducing Dishes)

这道题目要求厨师通过调整菜品烹饪顺序,选择部分菜品,以最大化满意度总和。满意度与烹饪时间有关,时间乘以满意度即为菜品的喜好系数。在给定的满意度数组中,通过排除不满意菜品,计算最大喜好系数总和。例如,当满意度为[-1, -8, 0, 5, -9]时,最大总和为14。可以按满意度排序,使用后缀和来动态规划解决问题。" 125505771,9640523,使用SystemVue进行射频链路预算与仿真分析,"['射频工程', '链路预算', 'RF仿真']
摘要由CSDN通过智能技术生成

A chef has collected data on the satisfaction level of his n dishes. Chef can cook any dish in 1 unit of time.

Like-time coefficient of a dish is defined as the time taken to cook that dish including previous dishes multiplied by its satisfaction level i.e. time[i] * satisfaction[i].

Return the maximum sum of like-time coefficient that the chef can obtain after dishes preparation.

Dishes can be prepared in any order and the chef can discard some dishes to get this maximum value.

Example 1:

Input: satisfaction = [-1,-8,0,5,-9]
Output: 14
Explanation: After Removing the second and last dish, the maximum total like-time coefficient will be equal to (-11 + 02 + 5*3 = 14).
Each dish is prepared in one unit of time.
Example 2:

Input: satisfaction = [4,3,2]
Output: 20
Explanation: Dishes can be prepared in any order, (21 + 32 + 4*3 = 20)
Example 3:

Input: satisfaction = [-1,-4,-5]
Output: 0
Explanation: People do not like the dishes. No dish is prepared.

Constraints:

n == satisfaction.length
1 <= n <= 500
-1000 <= satisfaction[i] <= 1000


coefficient = satisfaction * factor

  1. 首先我们将 satisfaction 排序, 这点比较好理解, 越大的 satisfaction, 赋予越大的 factor,
  2. 根据排序后的 satisfaction 创建 suffix sum, 之所以这么做是因为我们后面每排除一道菜,实际做的是减去当前菜所能获得的 coefficient, 然后后面所有的菜的 factor-1, 这样实际做的就是减去 suffix_su
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值