Count inversions in tree traversal
Your task
Given a binary tree as a level-order array arr (null for missing) that is NOT guaranteed to be a BST, return the number of adjacent out-of-order pairs in its in-order traversal, that is, the count of consecutive positions (i, i+1) in the in-order sequence where the earlier value is greater than or equal to the later one. A return of 0 means the tree is a valid BST (with strictly increasing in-order). 0 <= node count <= 50000.
Examples
bst_inorder_violations(arr: list[int]) -> intExample 1
Input
bst_inorder_violations([2, 1, 3])Output
0