blocks = new int[Bn]每块里的个数不用盖世每组元素的个数吗blocks = new int[B]
public NumArray(int[] nums) {
N = nums.length;
if (N == 0) {
return;
}
B = (int) Math.sqrt(N);
Bn = N / B + (N % B > 0 ? 1 : 0);
data = Arrays.copyOf(nums, N);
blocks = new int[Bn];
for (int i = 0; i < N; i++) {
blocks[i / B] += nums[i];
}
}
blocks = new int[Bn]每块里的个数不用盖世每组元素的个数吗blocks = new int[B]
9
收起
正在回答
1回答
抱歉,没理解你的问题,什么叫:每块里的个数不用盖世每组元素的个数吗?
==========
以 13 为例,B 算出的结果为 3,表示每块包含 3 个元素。
相应的 Bn 算出的结果就是 5,即需要有 5 块。(前 4 块每块包含 3 个元素,最后一块只有 1 个元素。)
Bn 是块数,因此 blocks 含有 Bn 个元素。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星