美文网首页
连续子区间和

连续子区间和

作者: 陈大吼 | 来源:发表于2022-08-19 09:37 被阅读0次

小M给你一串含有c个正整数的数组, 想让你帮忙求出有多少个下标的连续区间, 它们的和大于等于x。

输入描述:
第一行两个整数c x(0 < c <= 1000000, 0 <= x <= 100000000)
第二行有c个正整数(每个正整数小于等于100)。

输出描述:
输出一个整数,表示所求的个数。

输入例子1:
3 6
2 4 7
输出例子1:
4
例子1说明:
对于有3个整数构成的数组而言,总共有6个下标连续的区间,他们的和分别为:
2 = 2
4 = 4
7 = 7
2 + 4 = 6
4 + 7 = 11
2 + 4 + 7 = 13
其中有4个和大于等于6,所以答案等于4。

输入例子2:
2 0
2 4
输出例子1:
3

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scaner = new Scanner(System.in);
        int n = scaner.nextInt();
        int x = scaner.nextInt();
        int[] a = new int[n];
        for(int i=0;i<n;i++){
            a[i] = scaner.nextInt();
        }
        //滑动窗口算法
        long count = 0, sum = 0; //这里要用long,否则无法通过所有测试用例,数值可能超过int上限
        int lIndex = 0, rIndex = 0;
        while(rIndex < n) {
            sum += a[rIndex];
            while(sum >= x && lIndex<=rIndex) {//必须得有lIndex<=rIndex,否则当x为0时,会计算错误
                count += (n-rIndex);
                sum -= a[lIndex];
                lIndex++;
            }
            rIndex++;
        }
        System.out.println(count);
    }
}

相关文章

  • 连续子区间和

    小M给你一串含有c个正整数的数组, 想让你帮忙求出有多少个下标的连续区间, 它们的和大于等于x。输入3 62 4 ...

  • 连续子区间和

    小M给你一串含有c个正整数的数组, 想让你帮忙求出有多少个下标的连续区间, 它们的和大于等于x。 输入描述:第一行...

  • 今日头条 2018 AI Camp 6 月 2 日在线笔试编程题

    题目 给出一个长度为 n 的数组,请找出在所有连续区间 中,区间和最大同时这个区间 0 的个数小于等于 3 个,输...

  • 2.4 因子

    2.4 因子 统计中变量:区间变量,名义变量和有序变量 区间变量取连续的数值,可以进行求和平均值等运算 名义变量和...

  • 2. 主动1号 2022-01-19

    连续出 3个 早晨星 方案:两个区间时,区间不要存在 穿插。三个区间时,区间不要存在 穿插。原因:若存在穿插,可以...

  • 积分区间内不连续的函数积分

    积分区间内不连续的函数积分

  • 1508. 子数组和排序后的区间和

    1508. 子数组和排序后的区间和 暴力 前缀和+二分 不会。。

  • 高数

    连续函数在闭区间a,b上必有界

  • 连续区间重合判断

    场景 用户输入若干个区间范围[X1,Y1],[X2,Y2],[X3,Y3],[Xn,Yn]...,其中X1-Xn,...

  • 1.2 数组连续递增区间

    记某面试题目:输入为正整数数组,找出排好序的数组的所有连续区间, 如果该连续空间只有一个数字,将该数字放入一个数组...

网友评论

      本文标题:连续子区间和

      本文链接:https://www.haomeiwen.com/subject/dunygrtx.html