LintCode:线段树的构造 II

来源:互联网 发布:不需要备案的国外域名 编辑:程序博客网 时间:2024/05/21 21:40

LintCode:线段树的构造 II这里写链接内容

"""Definition of SegmentTreeNode:class SegmentTreeNode:    def __init__(self, start, end, max):        self.start, self.end, self.max = start, end, max        self.left, self.right = None, None"""class Solution:     # @oaram A: a list of integer    # @return: The root of Segment Tree    def build(self, A):        # write your code here        if A == []:            return None        self.A = A        self.root = SegmentTreeNode(0, len(A)-1, max(A))        self.build_tree(self.root)        return self.root    def build_tree(self, node):        if node.start == node.end or node == None:            return        node.left = SegmentTreeNode(node.start, (node.start+node.end)/2, max(self.A[node.start:(node.start+node.end)/2 + 1]))        node.right = SegmentTreeNode((node.start+node.end)/2 + 1, node.end, max(self.A[(node.start+node.end)/2 + 1:node.end + 1]))        self.build_tree(node.left)        self.build_tree(node.right)
0 0
原创粉丝点击