C++ 我如何处理这种变化?
在数组中求最大和,使两个元素不相邻。在这种情况下,还有一个条件是,第一个元素和最后一个元素也不应该放在一起 如果没有最后一个条件,也就是说,我开发了下面的代码,其中我取了两个变量,C++ 我如何处理这种变化?,c++,arrays,algorithm,c++11,C++,Arrays,Algorithm,C++11,在数组中求最大和,使两个元素不相邻。在这种情况下,还有一个条件是,第一个元素和最后一个元素也不应该放在一起 如果没有最后一个条件,也就是说,我开发了下面的代码,其中我取了两个变量,incl和excl,并找出值。详情如下: #include <iostream> using namespace std; int main (void) { int i,n; cin>>n; int arr[100]; for ( i = 0; i <
incl
和excl
,并找出值。详情如下:
#include <iostream>
using namespace std;
int main (void)
{
int i,n;
cin>>n;
int arr[100];
for ( i = 0; i < n; i++ )
cin>>arr[i];
int incl,excl,excls;
incl = arr[0];
for ( i = 1; i < n; i++ )
{
if (incl > excl)
excls = incl;
else
excls = excl;
incl = excl + arr[i];
excl = excls;
}
if (incl > excl)
cout<<incl;
else
cout<<excl;
cout<<"\n";
return 0;
}
#包括
使用名称空间std;
内部主(空)
{
inti,n;
cin>>n;
int-arr[100];
对于(i=0;i>arr[i];
国际,包括,不包括,不包括;
incl=arr[0];
对于(i=1;i不包括)
excls=包括;
其他的
excls=excl;
incl=不包括+arr[i];
excl=EXCS;
}
如果(包括>不包括)
cout为了说明这种特殊情况,可以运行现有算法两次
第一次计算数组中前n-1个元素的最佳和。这将计算绝对不包括最后一个元素的最佳和
第二次计算数组中最后n-1个元素的最佳和。这将计算绝对不包括第一个元素的最佳和
最好的答案将是这两个结果中最好的一个
(顺便说一下,您没有初始化变量excl,因此有时可能会得到错误的结果)如何区分连续的元素?