泰州市网站制作公司网上商城如何做起来
泰州市网站制作公司,网上商城如何做起来,惠州网站设计,网络公司做网站一和零
Leetcode 474
学习记录自代码随想录
要点#xff1a;1.背包容量为二维#xff0c;物品重量为数组元素长度#xff0c;价值为1#xff1b; 2.仍是01背包问题#xff0c;递推公式仿照 d p [ j ] m a x ( d p [ j ] , d p [ j − w e i g h t [ i ] ] v a l u e …一和零
Leetcode 474
学习记录自代码随想录
要点1.背包容量为二维物品重量为数组元素长度价值为1 2.仍是01背包问题递推公式仿照 d p [ j ] m a x ( d p [ j ] , d p [ j − w e i g h t [ i ] ] v a l u e [ i ] ) dp[j] max(dp[j], dp[j-weight[i]]value[i]) dp[j]max(dp[j],dp[j−weight[i]]value[i])得到 d p [ i ] [ j ] m a x ( d p [ i ] [ j ] , d p [ i − z e r o _ n u m ] [ j − o n e _ n u m ] 1 ) dp[i][j] max(dp[i][j], dp[i-zero\_num][j-one\_num]1) dp[i][j]max(dp[i][j],dp[i−zero_num][j−one_num]1) 3.数组初始化也仿照01背包问题没有负数则数组值初始化为0
class Solution {
public:int findMaxForm(vectorstring strs, int m, int n) {// 1.dp[i][j]含义最多有i个0j个1时的最大子集长度为dp[i][j]vectorvectorint dp(m1, vectorint(n1, 0));// 2.递推公式dp[i][j] max(dp[i][j], dp[i-zero_num][j-one_num]1)物品重量为其zero_num和one_num价值为1// 3.dp数组初始化和01背包问题一样为0// 4.遍历顺序外层遍历物品内层反向遍历容量for(int str 0; str strs.size(); str){int zero_num 0, one_num 0;for(char a : strs[str]){if(a 0) zero_num;else one_num;}for(int i m; i zero_num; i--){for(int j n; j one_num; j--){dp[i][j] max(dp[i][j], dp[i-zero_num][j-one_num] 1);}}}// 5.举例推导dp数组return dp[m][n];}
};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87359.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!