首页 > 编程语言 >【算法题】1402. 做菜顺序

【算法题】1402. 做菜顺序

时间:2023-10-30 12:33:39浏览次数:34  
标签:satisfaction like 示例 int 做菜 算法 time 1402 每道菜


题目:

一个厨师收集了他 n 道菜的满意程度 satisfaction ,这个厨师做出每道菜的时间都是 1 单位时间。

一道菜的 「 like-time 系数 」定义为烹饪这道菜结束的时间(包含之前每道菜所花费的时间)乘以这道菜的满意程度,也就是 time[i]*satisfaction[i] 。

返回厨师在准备了一定数量的菜肴后可以获得的最大 like-time 系数 总和。

你可以按 任意 顺序安排做菜的顺序,你也可以选择放弃做某些菜来获得更大的总和。

示例 1:

输入:satisfaction = [-1,-8,0,5,-9]
输出:14
解释:去掉第二道和最后一道菜,最大的 like-time 系数和为 (-11 + 02 + 5*3 = 14) 。每道菜都需要花费 1 单位时间完成。
示例 2:

输入:satisfaction = [4,3,2]
输出:20
解释:可以按照任意顺序做菜 (21 + 32 + 4*3 = 20)
示例 3:

输入:satisfaction = [-1,-4,-5]
输出:0
解释:大家都不喜欢这些菜,所以不做任何菜就可以获得最大的 like-time 系数。

提示:

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

java代码:

class Solution {
    public int maxSatisfaction(int[] satisfaction) {
        int n = satisfaction.length;
        int[][] dp = new int[n + 1][n + 1];
        Arrays.sort(satisfaction);
        int res = 0;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                dp[i][j] = dp[i - 1][j - 1] + satisfaction[i - 1] * j;
                if (j < i) {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j]);
                }
                res = Math.max(res, dp[i][j]);
            }
        }
        return res;
    }
}


标签:satisfaction,like,示例,int,做菜,算法,time,1402,每道菜
From: https://blog.51cto.com/u_6813689/8087465

相关文章

  • 【算法题】得到K个半回文串的最小修改次数
    题目:给你一个字符串s和一个整数k,请你将s分成k个子字符串,使得每个子字符串变成半回文串需要修改的字符数目最少。请你返回一个整数,表示需要修改的最少字符数目。注意:如果一个字符串从左往右和从右往左读是一样的,那么它是一个回文串。如果长度为len的字符串存在......
  • 【算法题】统计无向图中无法互相到达点对数
    题目:给你一个整数n,表示一张无向图中有n个节点,编号为0到n-1。同时给你一个二维整数数组edges,其中edges[i]=[ai,bi]表示节点ai和bi之间有一条无向边。请你返回无法互相到达的不同点对数目。示例1:输入:n=3,edges=[[0,1],[0,2],[1,2]]输出:0解释:所......
  • 基于多尺度分形残差注意力网络的超分辨率重建算法
    1.引言深度神经网络可以显著提高超分辨率的质量,但现有方法难以充分利用低分辨率尺度特征和通道信息,从而阻碍了卷积神经网络的表达能力。针对此类问题,本章提出了一种多尺度分形残差注意力网络(Multi-scaleFractalResidualAttentionNetwork,MFRAN)。具体而言,MFRAN由分形残差块(Fra......
  • 算法:实现中序遍历(3种方法图例详解,小白也能看懂)
     中序遍历:左->中 ->右练习地址:力扣(LeetCode)官网-全球极客挚爱的技术成长平台1、递归法 #Definitionforabinarytreenode.classTreeNode(object):def__init__(self,val=0,left=None,right=None):self.val=valself.left=left......
  • 【智能优化算法】开普勒优化算法KOA附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 去雨去雪去雾算法运行问题汇总记录
    问题一在进行去雨去雪去雾算法过程中,遇到了一个问题,这在先前的电脑运行是都没有出现过,但在博主新买的电脑上却出现了,讲道理是有点小抑郁的。RuntimeWarning:invalidvalueencounteredinscalardivideret=ret.dtype.type(ret/rcount)NaNorInffoundininputtensor.......
  • 国密sm4算法
    一、概述国密算法定义:即国家密码局认定的国产密码算法。通过定义我们可以知道,国密算法有两个要素:1、国家密码局认定在国家密码局官网上,可以看到由其发布的标准规范。2、密码算法首先知道什么是密码,密码就是将正常的信息加密后变为无法正常识别的编码,可以认为是一种混淆......
  • LeetCode每日算法2—两数相加
    题目描述给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字0之外,这两个数都不会以0开头。示例输入:(2......
  • 10.30算法
    无重复字符的最长子串给定一个字符串s,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1:输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3。示例2:输入:s="bbbbb"输出:1解释:因为无重复字符的最长子串是"b",所以其长度......
  • 基于深度学习的自动驾驶汽车语义分割与场景标注算法研究。
    自动驾驶汽车是当前研究的热点领域之一,其中基于深度学习的语义分割与场景标注算法在自动驾驶汽车的视觉感知中具有重要作用。本文将围绕自动驾驶汽车的语义分割与场景标注算法展开研究。一、研究背景随着人工智能技术的不断发展,自动驾驶汽车逐渐成为汽车产业的重要发展方向。在......