求一个O(n * n)一下的算法思路
给定你n个数字ai,请你求出有多少个区间[l,r],满足该区间的数字之和等于其区间长度。
(1<=n<=1e5)
3
1 2 0
3
#include<iostream>
using namespace std;
long long a[100000]={0};
int main()
{
int n,k=0;
int j=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
a[i]+=a[i-1];
}
//[x,y]的区间和
//cout<<a[y]-a[x-1]<<endl;
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
if(j-(i-1)==a[j]-a[i-1])
k++;
}
cout<<k;
return 0;
}