每日一题Day<2022/1/25>

阅读 54

2022-01-26

1)题目:

2)代码:

class Solution0125 {
    public int numberOfArrays(int[] differences, int lower, int upper) {
        //只看第一个元素,初始范围在[lower,upper]
        //计算剩余元素与第一个元素的最大和最小差值
        //由于测试示例太大,改用long型存储。
        long max=0;
        long min=0;
        long sum=0;
        for (int i = 0; i < differences.length; i++) {
            sum=sum+differences[i];
            if (max<sum)
                max=sum;
            if (min>sum)
                min=sum;
        }
        sum=0;
        //第一个元素的精确范围[lower-min,upper-max],数学求个数
        sum=upper-max-(lower-min)+1;
        //大于0则存在,小于等于不存在。
        return sum>0?(int)sum:0;
    }
}

3)运行·截图:

精彩评论(0)

0 0 举报