题解 | 能量共振
能量共振
https://www.nowcoder.com/practice/9d4af8c0972c4b3fbb1194dbe5e0f9f6
补充一个python版本
def main():
n = int(input())
A = list(map(int, input().split()))
sum_dict = {0: [0]}
s = 0
for i, a in enumerate(A, start=1):
s += a
sum_dict.setdefault(s, []).append(i)
# print(sum_dict)
min_span_l = n
n_min_spans = 0
for s in sum_dict:
ids = sum_dict[s]
len_ids = len(ids)
if len_ids > 2:
for s_id in range(len_ids-2):
l = ids[s_id+2] - ids[s_id]
if l < min_span_l:
min_span_l = l
n_min_spans = 1
elif l == min_span_l:
n_min_spans += 1
if n_min_spans == 0:
print(-1, -1)
return
print(min_span_l, n_min_spans)
main()
查看15道真题和解析