一、题目描述
题目链接:https://leetcode-cn.com/problems/reducing-dishes/
二、题目分析
力扣将这道题归为动态规划的范畴,事实上解法是数学证明。只能说分析的过程有动态规划内味。
首先我们最直观的想法是,尽量找到满意度大的菜,然后再看看能不能加上别的菜。那么能加菜的条件是什么呢?我们分析一下。假设有数组{c1,c2,c3,c4},以降序排列,则c1符合我们第一个要求,当只选第一个菜的时候,sum为c1,此时,若我们加上第二道菜,则有sum = 1 * c2 + 2 * c1,只有当c2 + 2 * c1 > c1时,我们才能加菜。这时移项一下,有c1 + c2 > 0,再加上其他菜也是同理证明,我们发现,只有加上的那个菜,和前面菜的喜好度之和大于0,加上这个菜才会让我们的sum增加。