Posts

Showing posts with the label binary-search-tree

Count greater elements to the right of self

Count greater elements to the right of self This question below given is driving me nuts.If anyone can help, please. "Given an array Num of 'n' elements return an array A of length 'n' in which A[i] contains number of elements greater than Num[i] to its right in the initial array" I saw an SO answer here but its contains solution of O(n^2). I need a solution of O(nlogn) . I have solution for "Count smaller elements to left of self". But modifying it didn't give me the required solution(refer for code below). Any help is appreciated:) class BinarySearchTreeNode(object): def __init__(self, val): self.val = val self.left = None self.right = None self.count = 1 self.leftTreeSize = 0 class BinarySearchTree(object): def __init__(self): self.root = None def insert(self, val, root): if not root: self.root = BinarySearchTreeNode(val) return 0 if val == root.val: root.count += 1 retur...