需要了解如何解决此算法难题
Need an idea about how to solve this algorithm puzzle
所以,这是一个C++作业问题,我已经尝试了很长时间,但无法正确理解。这是个问题:
给定两个具有相同长度的整数数组,A [0..n-1] 和 B [0..n-1]。有必要找到第一对索引 i0 和 j0, i0 <= j0,使得 A [i0] + B [j0] = 最大 A [i] + B [j],其中 0 <= i <n,><= j <n,><= j.
int maxSum(int arrx[], int arry[], int x){
int i=0, j=0;
int a;
while(i <= j && j < x){
a = arrx[i] + arry[j];
if(a > arrx[i]){
cout << i << " " << j << " ";
i = x;
}else{
j++;
}
}
return 0;
}
应该是 I/O 的示例:输入:
四
4 -8 6 0
-10 3 1 1
输出:
0 1
如果我理解你的问题,这应该可以。答案是从您的输入数据中给出的 7:
int maxSum(int[] arrx, int[] arry, int n) // n is the size (count) of the array
{
int i;
int j;
int a;
int maxVal;
int saveI;
int saveJ;
// first, set maxVal to minimum to make sure you get max val (0 is not necessarily min value)
maxVal = 0;
for (i = 0; i <= (n - 1); i++)
{
if (arrx[i] < maxVal)
maxVal = arrx[i];
if (arrx[j] < maxVal)
maxVal = arrx[j];
}
// now, crawl through the arrays
for (j = 0; j <= (n - 1); j++)
{
for (i = 0; i <= j; i++)
{
a = arrx[i] + arry[j];
if (a > maxVal)
{
maxVal = a;
saveI = i;
saveJ = j;
cout << i << " " << j << " " << a " ";
}
}
}
return maxVal;
}
相关文章:
- 从QTcpSocket上的数据流中连续运行复杂算法的最佳Qt线程解决方案是什么
- 需要了解如何解决此算法难题
- "Neighbor function"优化以使用A*算法解决8难题
- 了解算法解决方案
- 有没有解决方案而不是在C++中移动背包回溯算法
- 我需要更好的算法来解决这个问题
- 所有的组合算法和解决C++问题的一般方法
- 减少整数分数算法-解决方案说明
- 不回头只选择一个解决方案的算法
- 用于分组以解决冲突的算法
- 将一维矩阵数组转换为主一维矩阵的有趣算法挑战,需要有效的解决方案
- 使用扫描AABB交集算法解决碰撞法线
- 如何在Barrier算法迭代后访问当前解决方案
- 我如何使用联合查找算法来解决这个问题
- C++迷宫解决算法分割故障
- 是硬币变化算法,输出仍可由DP解决的所有组合
- 解决涉及对之间差异的算法挑战
- 这种算法解决数独的时间复杂度是多少?
- 算法文件解决方案中的c2784, c2780和c2676错误
- 用c++用A*算法解决n个谜题