如何解决尝试使用分治法获取数组的所有子数组
基本思想是使用Maximum subarray solution生成一个数组的所有子数组。但是为了实现这个想法,我遇到了一个障碍,我需要找到两个向量的所有组合(中间的左侧和中间的右侧)。
例如,如果每个向量中有 5 个元素,那么如果我从 vector1 中选择 1 个元素,然后我必须从 vector2 中选择一到五个元素。
同样,如果我从 vector1 中选择 2 个元素,那么我必须从 vector2 等中选择一到五个元素。
下面是我尝试实现左右两边的子数组。我需要你的帮助来在 C++ 中实现两个向量的组合。
for (int i = m; i >= l; i--) {
sum = sum + arr[i];
A[cnt].push_back(arr[i]);
if (sum > left_sum)
left_sum = sum;
}
int zsize=A[cnt].size();
int k1=cnt;
cnt++;
for (int i=0;i<zsize-1;i++)
{
A[cnt]=A[k1];
A[cnt].erase(A[cnt].begin()+i+1,A[cnt].begin()+zsize);
cnt++;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。