算法练习:数组求和统计

371 阅读1分钟

问题来源:牛客的牛客求职必刷题(题目未公开)

问题简述:数组a中的连续求和 = 数组b中的左右边界和, 这样的情况数目(a和b的长度相同)

连续求和需要知道怎么样是最简的: sum[i:j] = sum[0:j] - sum[0:i-1]

    public int countLR (int[] a, int[] b) {
        // write code here
        int[] sum = new int[a.length+1];
        int res = 0;
        sum[0] = 0;
        for(int i=1; i<a.length+1; i++) {
            sum[i] = sum[i-1]+ a[i-1];
            for(int j=0; j<i; j++) {
                if(sum[i] - sum[j] == (b[j] + b[i-1])) {
                    res++;
                }
            }
        }
        return res;
    }