【发布时间】:2015-07-03 16:14:38
【问题描述】:
问题
给定一个非负整数数组 A 和一个范围 (B, C),
找出数组中总和 S 在 [B, C] 或 B 范围内的连续子序列的数量
连续子序列被定义为所有数 A[i], A[i + 1], .... A[j] 其中 0
例子:
A : [10, 5, 1, 0, 2]
(B, C) : (6, 8)
ans = 3
[5, 1], [5, 1, 0], [5, 1, 0, 2] 是仅有的 3 个连续子序列,它们的和在 [6, 8] 范围内
我的代码
def numRange(A, B, C):
n = len(A)
count = 0
for i in xrange(n-1):
newsum = A[i]
j = i + 1
while newsum <= C and j < n:
if newsum >= B :
count += 1
newsum += A[j]
j += 1
if A[n-1] >= B and A[n-1] <= C:
count += 1
return count
问题:错误答案。
- 我缺少哪些案例?
- 这段代码改正后如何提高效率?
【问题讨论】:
标签: python performance number-theory