[Python]||Set||Binary-search
Create a set with all possible values of K and iterate over the list for each element to find corresponding high one \n\n\ndef recoverArray(self, nums):\n\n    
Create a set with all possible values of K and iterate over the list for each element to find corresponding high one \n\n```\ndef recoverArray(self, nums):\n```\n    \n        def bsearch(x,nums):\n            n = len(nums)\n            low = 0\n            end = n-1\n            \n            while low<=end:\n                mid = (low+end)//2\n                if nums[mid] == x:\n                    return (True,mid)\n                elif nums[mid]>x:\n                    end = mid-1\n                else:\n                    low = mid+1\n                    \n            return (False,-1)    \n                \n        \n        nums.sort()\n        \n        k_lis = set([(nums[i]-nums[0])//2 for i in range(1,len(nums)) if (nums[i]-nums[0])%2==0])\n        if 0 in k_lis:\n            k_lis.remove(0)\n        \n        \n        for i in k_lis:\n            temp = [j for j in nums]\n            k_arr = []\n            while temp:\n                x = temp.pop(0)\n                a,b = bsearch(x+ 2*i,temp)\n                if not a:\n                    break\n                k_arr.append(x+i)    \n                temp.pop(b)\n            if not temp:\n                return k_arr\n
['Binary Tree', 'Ordered Set']