算法学习之 背包01问题 , 备战leecode

编程入门 行业动态 更新时间:2024-10-28 03:32:26

<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法学习之 背包01问题 , 备战leecode"/>

算法学习之 背包01问题 , 备战leecode

来看题目


我们分析一下题目,首先我们要排序,这有助于我们得到最大的值,我们要得到一个递推公式

代码如下:

class Solution {
public:int maxSatisfaction(vector<int>& satisfaction) {int n = satisfaction.size();vector<vector<int>> dp(n+1,vector<int>(n+1));sort(satisfaction.begin(),satisfaction.end());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; // 注意satisfaction 里的下标 和 dp 里的下标不一样if(j < i) {dp[i][j] = max(dp[i-1][j],dp[i][j]);}res = max(res,dp[i][j]);}}return res;}
};

更多推荐

算法学习之 背包01问题 , 备战leecode

本文发布于:2023-12-05 13:25:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1664352.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   背包   leecode

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!