因为数组是累加的,所以最大和肯定是全部的数值相加;最小和,从数组第二个数开始依次与它的前一个数比较,如果相等就不加(说明该位可能是0),如果不相等,那就加上该位(代表肯定是变动了),最后别忘了加上数组的第一个数。
代码如下(代码量很小):
#include<iostream>
using namespace std;
int main()
{
int n;
long long max=0,min=0;
cin>>n;
int num[n];
for(int i=0;i<n;i++)
{
cin>>num[i];
max += num[i];
}
for(int i=1;i<n;i++)
{
if(num[i]==num[i-1]) ;
else min += num[i];
}
min += num[0];
cout<<max<<endl;
cout<<min<<endl;
return 0;
}