当前位置: 首页 > news >正文

leetcode 困难题 1402. Reducing Dishes 做菜顺序

Problem: 1402. Reducing Dishes 做菜顺序

两种方案的

方案1: 记忆化深度优先搜索,首先排序的, 然后对每一个数字,两种选择的,1选2不选,不选的话时间不变,选的话时间加一且需要累加time * satisfaction[index];,拿到两者的最大值

方案2: 动态规划的,dp[i][j]表示以satisfaction[i]结束且时间步是j的最大值,递推公式是:dp[i][t] = max(dp[i-1][t-1] + t * satisfaction[i-1], dp[i-1][t]);,也就是选择第i项且时间是t,dp[i-1][t-1] + t * satisfaction[i-1],不选择第i项dp[i-1][t]

方案1Code

class Solution { public: unordered_map<int, int> ump; int n; int dfs(vector<int>& satisfaction, int index, int time) { if(index == n) return 0; int r1, r2, mx = 0, key = index * 1000 + time; if( ump.count(key) != 0 ) return ump[key]; r1 = dfs(satisfaction, index + 1, time); r2 = dfs(satisfaction, index + 1, time + 1) + time * satisfaction[index]; mx = max(r1, r2); ump[key] = mx; return mx; } int maxSatisfaction(vector<int>& satisfaction) { n = satisfaction.size(); sort( satisfaction.begin(), satisfaction.end() ); if(satisfaction.back() <= 0) return 0; int r = dfs(satisfaction, 0, 1); return r; } };

方案2动态规划Code

class Solution {
public:
int n;
int maxSatisfaction(vector& satisfaction) {
n = satisfaction.size();
sort( satisfaction.begin(), satisfaction.end() );
if(satisfaction.back() <= 0) return 0;
vector<vector> dp(n+1, vector(n+1, INT_MIN/10));
for(int i= 0; i<=n ;i++) dp[i][0] = 0;
for(int i= 1; i<=n ;i++) {
for(int t=1; t<=i; t++) {
dp[i][t] = max(dp[i-1][t-1] + t * satisfaction[i-1], dp[i-1][t]);
}
}
return *max_element(dp[n].begin(), dp[n].end());
}
};

http://www.jsqmd.com/news/494337/

相关文章:

  • 2026年热门的AI品牌管理品牌推荐:AI品牌管理系统/AI品牌营销管理系统实力公司推荐 - 品牌宣传支持者
  • leetcode 1405. Longest Happy String 最长快乐字符串-耗时100
  • 计算机毕设 java 梅州红色文化传承小程序 Java+SpringBoot 梅州红色文化小程序 微信小程序红色文化传承平台
  • 2026 独立开发者 AI 工具栈:我的选择和理由
  • 从交易者到“合伙人”:Cber经纪人体系全解析,你的每一份共识都算数
  • 5个免费IP查询API对比:哪个最适合你的项目?(附性能测试数据)
  • ChatTTS下载安装全攻略:从原理到避坑指南
  • 2026年知名的AI品牌视频公司推荐:AI品牌宣传片/AI品牌营销管理/AI品牌营销管理系统品牌公司推荐 - 品牌宣传支持者
  • FreeRTOS工程项目实践
  • 计算机毕设 java 美文推荐系统 Java+SpringBoot 美文推荐分享平台 Web 版美文博文交流网站
  • 基于计算机视觉的万物识别模型性能优化策略
  • 2026年口碑好的电热风炉厂家推荐:矿用电热风炉/井口防冻电热风炉源头工厂推荐 - 品牌宣传支持者
  • Unity开发次世代写实手游开发大纲
  • leetcode 困难题 1406. Stone Game III 石子游戏 III
  • sql性能分析和sql优化
  • Matlab实用指南:一键运行15种回归基础模型全家桶,涵盖ANN、RNN等高级模型,中文注释...
  • StructBERT文本相似度模型在网络安全中的应用:恶意文本与钓鱼内容识别
  • 2026年质量好的纸尿裤公司推荐:婴儿纸尿裤/内裤式纸尿裤/粘贴式纸尿裤生产厂家推荐 - 品牌宣传支持者
  • 2026 SiteGround 官网人工在线客服聊天指南
  • eNSP web方式防火墙透明模式配置
  • 高通 QCS8550 边缘智能实践:基于 Qwen2.5-7B 与 Agent+RAG 构建本地化知识助手
  • leetcode 1408. String Matching in an Array 数组中的字符串匹配-耗时100
  • c++基础+类和对象
  • 基于单矢量控制的永磁同步电机模型预测电流控制Simulink仿真模型 对应学习资料: 1
  • 文墨共鸣模型效果惊艳展示:多风格长文本创作集锦
  • 团队协作只能靠“在线文档”?大错特错!2026 年企业网盘“硬核协作”能力横评
  • 27.3k stars!Fish Speech:开源 TTS 的天花板,10 秒克隆任意声音!
  • 家庭网络小白必看:为什么你的手机和电脑能直接传文件?揭秘同一网段通信的底层逻辑
  • SAP Fiori Launchpad 全景解析:从统一入口到角色化工作台,再到移动端落地实践
  • 题解:P11062 【MX-X4-T2】「Jason-1」加法