【每周例题】蓝桥杯 C++ 区间最大和

发布时间 2023-12-22 15:35:36作者: 山远尽成云

区间最大和

题目

蓝桥杯 区间最大和

题目分析

  这道题涉及到了区间问题,我们首先要了解规定的该区间范围:1<p且p+k 一1 <n,我们将其转化:1<p<n-k+1,当我们得到这个区间的时候,需要求该区间的最大和可以用双重for循环搞定。

代码

 

#include <iostream>
using namespace std;
int main()
{
  long int n,k,q;
  cin>>n>>k;
  int a[100000];
  for(int i=0;i<n;i++)  //输入数组
  {
    cin>>a[i];
  }
  q=n-k+1;    //求出区间最大值
  long int sum=0,maxsum=0;
  for(int i=1;i<=q;i++)     //区间最大和的最小值
  {
    sum=0;
    for(int p=i;p<=(i+k-1);p++)     //求区间之和
    {
      sum+=a[p];
    }
    if(maxsum<=sum)     //求最大和
    {
      maxsum=sum;
    }
  }
  cout<<maxsum;
  return 0;
}