最近碰到好多对区间(数组)操作的题目。现在总结一下:
1、满足某条件的最小区间
题意:对于一个长度为N的数组,求出总和不小于S的连续子序列长度的最小值
方法①:O(N)求出sum,然后以O(1)的时间计算区间上的总和。 时间复杂度O(NlogN);
#include <iostream>
#include <algorithm>
using namespace std;
int sum[100010];
int main()
{
std::ios::sync_with_stdio(false);
int cas;
cin>>cas;
while(cas--)
{
memset(sum,0,sizeof(sum));
int n,s;
cin>>n>>s;
int minn=n+2;
for(int i=1;i&l