202109-1数组推导
题目链接:202109-1 数组推导
题意
已知数组An的单调递增的前缀最大值Bi,反推数组A的所有取值情况,sum为数组A中n个数的总和,求sum的最大值和最小值。
思路
求最大值:将输入的数据求和
求最小值:将输入的数进行去重操作,再求和
解题思路
- 输入数据:可以先存后用,也可以边存边用,本方法采用现存后用
- 求最大值:for循环遍历输入数据求和
- 求最小值:基于最小的初值进行比较,通过for循环将输入的数据去重后,再求和
- 输出数据:将最大值和最小值输出
代码
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int B[n];
for(int i=0;i<n;i++)
{
cin>>B[i];
}
int sum_Max=0;
for(int i=0;i<n;i++)
{
sum_Max+=B[i];
}
int sum_Min=B[0];
for(int i=1;i<n;i++)
{
if(B[i]==B[i-1])
{
continue;
}
sum_Min+=B[i];
}
cout<<sum_Max<<endl;
cout<<sum_Min<<endl;
return 0;
}