arrays - 将数组分成两个相等的部分,差异最小并找到每个部分的总和
问题描述
嗨,我正在尝试用蛮力解决问题,但我无法解决如何解决它。我试了几个小时。
考虑一个数组 inputArray,其中至少有两个非零正整数,范围在 1 到 300 之间。根据这些规则将阵列器分成两组。
- 每个整数应该属于两个组之一
- 每个组中的整数总和必须尽可能接近相等。
- 2 组之间的整数总数之差不应超过 1
我需要返回每组的总和
解决方案
我使用 c++ 解决了这个问题
#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int ans(int i,int n,float s)
{
if(i<n-1) return INT_MAX;
if(n==0) return abs(s);
return min(ans(i-1,n-1,s-v[i-1]),ans(i-1,n,s));
}
int main()
{
string s;
cin>>s;
int c=0;
for(int i=0;i<s.length();i++)
{
if(s[i]==',') {v.push_back(stoi(s.substr(c,i-c)));
c=i+1;}
}
v.push_back(stoi(s.substr(c,s.length()-c)));
//for(int i=0;i<v.size();i++) cout<<v[i];
int ss=0;
for(int i=0;i<v.size();i++) ss+=v[i];
int n1=v.size();
int n2=n1/2;
float su=ss/2;
int k=ans(n1-1,n2,su);
cout<<ss-su-k<<" "<<su+k;
}
这是解决方案,希望对您有所帮助
推荐阅读
- selenium - Yii2 Codeception 接受类名必须是有效对象或字符串
- visual-studio-code - 附加编辑器亮点是否有可互换的定义?
- python-3.x - OpenCV 无法将模板与图像匹配(matchTemplate)
- mongodb - 在 MongoDB 查询中匹配坐标数组
- ios - 低能耗模式
- sat - 有没有实现非 CNF SAT 求解器的工具?
- wordpress - 如何在 Advance custom field pro 选项页面中获取价值
- model-view-controller - 如何正确保存信息
- python - 相当于 tensorflow 中的 enumerate 以在 tf.map_fn 中使用索引
- vue.js - VueJS - 将插槽和作用域插槽向下传递到子模板中的组件