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)运行·截图: