在本教程中,我们将讨论一个查找数组中最小值和次小值的最大和的程序。我们将得到一个包含整数的数组。我们的任务是在数组的每次可能的迭代中找到最小元素和次小元素的最大和。示例 实时演示#include using namespace std; //返回最小元素和 //次小元素的最大和 int pairWithMaxSum(int arr[], int N) { if (N < 2) return -1; int res = arr[0] + arr[1]; for (int i=1; i
在本教程中,我们将讨论一个查找两个数组乘积的最大和的程序。我们将得到两个相同大小的数组。我们的任务是通过将第一个数组中的一个元素与第二个数组中的一个元素相乘来找到最大和。示例 实时演示#include using namespace std; //计算通过 //乘以元素得到的最大和 int maximumSOP(int *a, int *b) { int sop = 0; int n = sizeof(a)/sizeof(a[0]); sort(a,a+n+1); sort(b,b+n+1); for (int i = 0; i
在本教程中,我们将讨论一个查找允许负数的数组中成对乘积的最大和的程序。我们将得到一个包含整数的数组。我们的任务是在执行成对乘法时找到最大和。示例 实时演示#include #define Mod 1000000007 using namespace std; //查找最大和 long long int findSum(int arr[], int n) { long long int sum = 0; //对数组进行排序 sort(arr, arr + n); int i = 0; while (i < n && arr[i] < 0) { if (i ... 阅读更多
在本教程中,我们将讨论一个查找具有特定差值的配对的最大和的程序。我们将得到一个包含整数和一个值 K 的数组。我们的任务是将差值小于 K 的元素配对,最后找到不相交集合中元素的最大和。示例 实时演示#include using namespace std; //返回不相交对的最大和 int maxSumPairWithDifferenceLessThanK(int arr[], int N, int K){ sort(arr, arr+N); int dp[N]; dp[0] = 0; for (int i = 1; i < N; i++) { dp[i] = dp[i-1]; ... 阅读更多
在本教程中,我们将讨论一个使用动态规划查找二叉树中节点的最大和的程序,使得没有两个节点相邻。我们将得到一个二叉树。我们的任务是使用动态规划找到具有最大和的子集,使得子集中没有两个节点直接连接。示例 实时演示#include using namespace std; //使用动态规划查找直径 void dfs(int node, int parent, int dp1[], int dp2[], list* adj, int tree[]){ int sum1 = 0, sum2 = 0; for (auto i = adj[node].begin(); i != adj[node].end(); ... 阅读更多
在本教程中,我们将讨论一个查找从 n 个数组中获取递增顺序元素的最大和的程序。我们将得到 N 个大小为 M 的数组。我们的任务是从每个数组中选择一个元素,使得前一个数组的元素小于下一个元素,从而找到最大和。示例 实时演示#include #define M 4 using namespace std; //计算通过选择 //一个元素得到的最大和 int maximumSum(int a[][M], int n) { for (int i = 0; i < n; i++) sort(a[i], a[i] + M); int sum ... 阅读更多
在本教程中,我们将讨论一个查找递增子序列的最大乘积的程序。我们将得到一个整数数组。我们的任务是找到数组中任何子序列(包含任意数量的元素)的最大乘积。示例 实时演示#include #define ll long long int using namespace std; //返回最大乘积 ll lis(ll arr[], ll n) { ll mpis[n]; //初始化值 for (int i = 0; i < n; i++) mpis[i] = arr[i]; for (int i = 1; i < n; i++) ... 阅读更多
在本教程中,我们将讨论一个查找大小为 3 的递增子序列的最大乘积的程序。我们将得到一个正整数数组。我们的任务是找到具有最大乘积的三个元素的子序列。示例#include using namespace std; //返回子序列的最大乘积 long long int maxProduct(int arr[] , int n) { int smaller[n]; smaller[0] = -1 ; setS ; for (int i = 0; i < n ; i++) { auto j = S.insert(arr[i]); auto itc = j.first; ... 阅读更多