中间那三个数的和

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

数组是 17、24、15、13、23。运行下面这段程序(查下标 1 到 3):

def seg_build(a, node, l, r, tree):
    if l == r:
        tree[node] = a[l]
        return
    m = (l + r) // 2
    seg_build(a, node * 2, l, m, tree)
    seg_build(a, node * 2 + 1, m + 1, r, tree)
    tree[node] = tree[node * 2] + tree[node * 2 + 1]

def seg_sum(node, l, r, ql, qr, tree):
    if qr < l or r < ql:
        return 0
    if ql <= l and r <= qr:
        return tree[node]
    m = (l + r) // 2
    return (seg_sum(node * 2, l, m, ql, qr, tree)
            + seg_sum(node * 2 + 1, m + 1, r, ql, qr, tree))

A = [17, 24, 15, 13, 23]
tree = [0] * (4 * len(A))
seg_build(A, 1, 0, len(A) - 1, tree)
print(seg_sum(1, 0, len(A) - 1, 1, 3, tree))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论