Two Sum IV - Input is a BST
Posted 唐僧洗发爱飘柔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Two Sum IV - Input is a BST相关的知识,希望对你有一定的参考价值。
这道题属于容易,还是挺简单的,但是我用的方法比较复杂。
题目:
思路:
1、我的想法是把树转换成列表,然后再遍历这个列表,判断是否两个元素相加为0,这种方法时间复杂度较高
2、大神也是将树节点存在列表中,建立一个空集合set,遍历列表,如果该(k - 该节点值)在集合中则返回True,否则将该节点值加入集合中
代码:
我的:
1 class Solution(object): 2 def findTarget(self, root, k): 3 """ 4 :type root: TreeNode 5 :type k: int 6 :rtype: bool 7 """ 8 a = [root] 9 i = 0 10 while i <= len(a) - 1: 11 if i == len(a) - 1 and not a[i].left and not a[i].right: 12 break 13 else: 14 if a[i].left: a.append(a[i].left) 15 if a[i].right: a.append(a[i].right) 16 i += 1 17 18 for i in range(len(a)): 19 for j in range(i+1,len(a)): 20 if a[i].val + a[j].val == k: 21 return True 22 return False
大神的:
1 def findTarget(self, root, k): 2 if not root: return False 3 bfs, s = [root], set() 4 for i in bfs: 5 if k - i.val in s: return True 6 s.add(i.val) 7 if i.left: bfs.append(i.left) 8 if i.right: bfs.append(i.right) 9 return False
以上是关于Two Sum IV - Input is a BST的主要内容,如果未能解决你的问题,请参考以下文章
653. Two Sum IV - Input is a BST
653. Two Sum IV - Input is a BST
653. Two Sum IV - Input is a BST
653. Two Sum IV - Input is a BST