您将获得一个数字BST.您必须在其中找到两个数字(a,b),以便a + b = S在O(n)时间和O(1)空间中.
什么算法?
一种可能的方法是将两个BST转换为双向链接列表,然后从前端和尾端开始:
if front + end > S then end--
Run Code Online (Sandbox Code Playgroud)
要么:
if front + end < S then front++
Run Code Online (Sandbox Code Playgroud)