新网站如何被网站收录,广告片拍摄制作公司,奇缦科技珠海网站建设优化,如何建一个企业网站1.一和零 力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度#xff0c;该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素#xff0…1.一和零 力扣LeetCode官网 - 全球极客挚爱的技术成长平台 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素集合 x 是集合 y 的 子集 。 示例 1 输入strs [10, 0001, 111001, 1, 0], m 5, n 3
输出4
解释最多有 5 个 0 和 3 个 1 的最大子集是 {10,0001,1,0} 因此答案是 4 。
其他满足题意但较小的子集包括 {0001,1} 和 {10,1,0} 。{111001} 不满足题意因为它含 4 个 1 大于 n 的值 3 。示例 2 输入strs [10, 0, 1], m 1, n 1
输出2
解释最大的子集是 {0, 1} 所以答案是 2。class Solution {
public:int findMaxForm(vectorstring strs, int m, int n) {int lenstrs.size();vectorvectorint dp(m1,vectorint(n1));for(int i1;ilen;i){int a0;int b0;for(auto sh:strs[i-1]){if(sh0) a;else b;}for(int jm;j0;j--){for(int kn;k0;k--){dp[j][k]dp[j][k];if(jak-b0) dp[j][k]max(dp[j][k],dp[j-a][k-b]1);}}}return dp[m][n];}
};
2.盈利计划 力扣LeetCode官网 - 全球极客挚爱的技术成长平台 集团里有 n 名员工他们可以完成各种各样的工作创造利润。 第 i 种工作会产生 profit[i] 的利润它要求 group[i] 名成员共同参与。如果成员参与了其中一项工作就不能参与另一项工作。 工作的任何至少产生 minProfit 利润的子集称为 盈利计划 。并且工作的成员总数最多为 n 。 有多少种计划可以选择因为答案很大所以 返回结果模 10^9 7 的值。 示例 1 输入n 5, minProfit 3, group [2,2], profit [2,3]
输出2
解释至少产生 3 的利润该集团可以完成工作 0 和工作 1 或仅完成工作 1 。
总的来说有两种计划。 示例 2 输入n 10, minProfit 5, group [2,3,5], profit [6,7,8]
输出7
解释至少产生 5 的利润只要完成其中一种工作就行所以该集团可以完成任何工作。
有 7 种可能的计划(0)(1)(2)(0,1)(0,2)(1,2)以及 (0,1,2) 。 class Solution {const int MOD 10 ^ 9 7;
public:int profitableSchemes(int n, int m, vectorint g, vectorint p){int len g.size();vectorvectorint dp(n 1, vectorint(m 1));for (int j 0; j n; j) dp[j][0] 1;for (int i 1; i len; i){for (int j n; jg[i-1]; j--){for (int km; k 0; k--){dp[j][k] dp[j - g[i - 1]][max(0, k - p[i - 1])];dp[j][k]%1000000007;}}}return dp[n][m];}
};
3.组合总和4 力扣LeetCode官网 - 全球极客挚爱的技术成长平台 给你一个由 不同 整数组成的数组 nums 和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1 输入nums [1,2,3], target 4
输出7
解释
所有可能的组合为
(1, 1, 1, 1)
(1, 1, 2)
(1, 2, 1)
(1, 3)
(2, 1, 1)
(2, 2)
(3, 1)
请注意顺序不同的序列被视作不同的组合。示例 2 输入nums [9], target 3
输出0class Solution {
public:int combinationSum4(vectorint nums, int target) {int nnums.size();vectordouble dp(target1);dp[0]1;//初始化for(int i1;itarget;i){for(int j0;jn;j){if(i-nums[j]0)dp[i]dp[i-nums[j]];}}return dp[target];}
};
4.不同的二叉搜索树 力扣LeetCode官网 - 全球极客挚爱的技术成长平台 给你一个整数 n 求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种返回满足题意的二叉搜索树的种数。 示例 1 输入n 3
输出5示例 2 输入n 1
输出1class Solution {
public:int numTrees(int n) {vectorint dp(n1);dp[0]1;for(int i1;in;i){for(int j1;ji;j){dp[i]dp[j-1]*dp[i-j];}}return dp[n];}
};