I believe that the approach you have will work, but does not have the appropriate time limits.
. , . -, BST. BST , . n. -, , , . U.
, , . O (U) , BST. BST O (log n), - O (U log n). ( O (1)).
, . (, 1,000,000,000), , U .
, , . , , , , BST .
, , . , BST , : , ? , :
0 1 3 6 8 9 10 14 19
, , 16. ?
, : , 0 16, 1 15, 2 14 .. , . O (log n) , O (U log n). (, , , , O (U log log n) , U- - ).
, . , , , , , U. , , , , , :
, O (n) , , O (log n) , . O (n log n) O (1) . , , U - , U!
, . , x U - x. , . , , , U - x. z.
, , , y , U, , , y , x. ,
y + z
> x + z
> x + (U - x)
= U
, y z U, U. ? , z, , x, U. , z , , x, U. , z - , x. , z, - , x, - , U.
, . , , , , 16:
0 1 3 6 8 9 10 14 19
- " " lhs " " rhs:
0 1 3 6 8 9 10 14 19
^ ^
lhs rhs
, 19, U. , , , , , lhs, 0. , , 19, , . , 19.
0 1 3 6 8 9 10 14 19
^ ^
lhs rhs
(14), . , , , , 0, , 16, 14. , 0:
0 1 3 6 8 9 10 14 19
^ ^
lhs rhs
:
, , 16, lhs rhs , , 16.
,
0 1 3 6 8 9 10 14 19
^ ^
lhs rhs (sum is 15, too small)
0 1 3 6 8 9 10 14 19
^ ^
lhs rhs (sum is 17, too big)
0 1 3 6 8 9 10 14 19
^ ^
lhs rhs (sum is 13, too small)
0 1 3 6 8 9 10 14 19
^ ^
lhs rhs (sum is 16, we're done!)
! .
, ? , , lhs , rhs , , . , O (n) . , O (1). O (n).
? , , O (1), - O (1). !
? : . . , .
, . , node . , , , "increment lhs" "decment rhs" " lhs" " rhs." , O (log n) ( , ) , n O (n) ( , ). , BST, , O (n) O (log n) space!
, . , , , . BST . , .
, !