兩數之和 輸入BST

2021-09-27 04:38:44 字數 1179 閱讀 3173

給定乙個二叉搜尋樹和乙個目標結果,如果 bst 中存在兩個元素且它們的和等於給定的目標結果,則返回 true。

通過二叉樹的中序遍歷使其生成乙個陣列,可通過雙指標和雜湊表的方法進行查詢。

class solution:

def inorder(self,root):

if root is none:

return

self.inorder(root.left)

self.inorder(root.right)

def findtarget(self, root: treenode, k: int) -> bool:

self.tmp =

self.inorder(root)

l = 0

r = len(self.tmp)-1

while lk:

r-=1

elif rst bool:

def inorder(root):

if not root:

return

return inorder(root.left)+[root.val]+inorder(root.right)

target = inorder(root)

n = len(target)

_dict = {}

for i, m in enumerate(target):

_dict[m] = i

if _dict.get(k - m) is not none:

return true

return false

通過二叉樹中序遍歷生成陣列儲存在target中

n是target陣列的長度

建立乙個空字典

將target陣列的下標存入i中,值存入m中

將其值於下表對應放入字典中

如果目標值減去陣列中的乙個值所得的值在陣列中

返回為真,否則返回為假

653 兩數之和 IV 輸入 BST

給定乙個二叉搜尋樹和乙個目標結果,如果 bst 中存在兩個元素且它們的和等於給定的目標結果,則返回 true。案例 1 輸入 5 3 6 2 4 7target 9 輸出 true 案例 2 輸入 5 3 6 2 4 7target 28 輸出 false 分析 先先序遍歷樹,將所有節點值放入陣列,...

兩數之和,三數之和

兩數之和 方法一 暴力 throw new illegalargumentexception 時間複雜度 o n 2 空間複雜度 o 1 public int twosum int nums,int target throw newillegalargumentexception no twosum...

leetcode 兩數之和與兩數之和

題目描述 給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。說明 返回的下標值 index1 和 index2 不是從零開始的。你可以假設每個輸入只對應唯一的答案,而且你不...