求累计和数组sums。
举例:
a = [1, 2, 3, 4, 5]
sums[0] = 1
sums[1] = 3
sums[2] = 6
sums[3] = 10
sums[4] = 15
# 求idx=1-3的前缀和
sums[3]-sums[0] = 10-1 = 9
# 求idx=0-2的前缀和
sums[2]-sums[-1] = 6-0 = 0
默认sums[-1] = 0 # index=-1的前缀和为0
# so
hash[0] = 1
# 前缀和为0的个数有1个
关于遍历,下面两种的效果一样。放狗屁!
for (i=0, i<n, i++)
for (j=0, j<i, j++)
for (i=0, i<n, i++)
for (j=i, j<n, j++)
n = 3
for i in range(0, n):
for j in range(0, i):
print(i, j)
# 1 0
# 2 0
# 2 1
print('*'*10)
for i in range(0, n):
for j in range(i, n):
print(i, j)
# 0 0
# 0 1
# 0 2
# 1 1
# 1 2
# 2 2