Tom 现在有一个长度为 n 的数组,Jerry 给 Tom 定义了一种超级区间,如果区间 [l,r] 满足 (a[l]+…+a[r])>=k, 则区间 [l,r] 被称为超级区间,现在 Jerry 想让 Tom 告诉他数组中有多少个超级区间。输入整数 n, 整数 k(1<=n,k<=100000),和一个大小为 n 的数组,数组的每个元素的大小都在 [1,1000] 之间。输出输入数组的超级区间的个数。
1.初始 L=R=0;sum=0;用来计算满足条件的区间个数 2.判断区间[L, R]的情况,满足情况1,则 sum++; R++。满足情况 2,L++。满足情况 3,结束计算。对于情况1,因为L不变时,后面的所有R都满足条件,所以可以修改为sum+=n-R+1;L++。 输入:3 5 [2,3,5] 输出:4 注:样例满足条件的超级区间为[1,2],[2,3],[1,3],[3,3]。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。