算法|每日一题|做菜顺序|贪心

1402. 做菜顺序

原题地址: 力扣每日一题:做菜顺序

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

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

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

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

java 复制代码
class Solution {
    public int maxSatisfaction(int[] satisfaction) {
    	// 排序
        Arrays.sort(satisfaction);
        for (int i = 0, j = satisfaction.length - 1; i < j; i++, j--) {
            int temp = satisfaction[i];
            satisfaction[i] = satisfaction[j];
            satisfaction[j] = temp;
        }
        int presum = 0, ans = 0;
        for (int si : satisfaction) {
        	// 大于零说明ans还能继续增加
            if (presum + si > 0) {
                presum += si;
                ans += presum;
            } else {
                break;
            }
        }
        return ans;
    }
}

如果对您有帮助,请点赞关注支持我,谢谢!❤

如有错误或者不足之处,敬请指正!❤

相关推荐
Xの哲學4 分钟前
Linux SMP 实现机制深度剖析
linux·服务器·网络·算法·边缘计算
2501_9061505618 分钟前
私有部署问卷系统操作实战记录-DWSurvey
java·运维·服务器·spring·开源
wuk99827 分钟前
使用PCA算法进行故障诊断的MATLAB仿真
算法·matlab
额呃呃30 分钟前
二分查找细节理解
数据结构·算法
better_liang30 分钟前
每日Java面试场景题知识点之-TCP/IP协议栈与Socket编程
java·tcp/ip·计算机网络·网络编程·socket·面试题
无尽的罚坐人生36 分钟前
hot 100 283. 移动零
数据结构·算法·双指针
niucloud-admin42 分钟前
java服务端——controller控制器
java·开发语言
To Be Clean Coder43 分钟前
【Spring源码】通过 Bean 工厂获取 Bean 的过程
java·后端·spring
永远都不秃头的程序员(互关)1 小时前
C++动态数组实战:从手写到vector优化
c++·算法
Fortunate Chen1 小时前
类与对象(下)
java·javascript·jvm