当前位置: 代码迷 >> 综合 >> Leetcode 1402. 做菜顺序(DAY 25 Hard 含题解)----动态规划学习期
  详细解决方案

Leetcode 1402. 做菜顺序(DAY 25 Hard 含题解)----动态规划学习期

热度:83   发布时间:2023-11-17 20:23:44.0

原题题目

在这里插入图片描述



代码实现(首刷自解)

int sumlove;//运用库函数 快速排序compare函数
int cmp(const void* a,const void* b)
{
    return *(int*)a - *(int*)b;
}//进行遍历
//进行排序后满意程度是由小到大 则我们需要做菜需要把满意度高的放在后面
//则也需要把满意度低的先揽入菜品中 这样满意度高的乘的数才能大
void calculate(int* satisfaction,int satisfactionSize,int pos,int temp,int times)
{
    if(pos < satisfactionSize){
    //先进行计算if((temp+=(satisfaction[pos]* times)) > sumlove)sumlove = temp;calculate(satisfaction,satisfactionSize,pos+1,temp,times+1);}
}int maxSatisfaction(int* satisfaction, int satisfactionSize){
    sumlove = 0;int i;//排序qsort(satisfaction,satisfactionSize,sizeof(int),cmp);for(i=0;i<satisfactionSize;i++)calculate(satisfaction,satisfactionSize,i,0,1);return sumlove;
}