码迷,mamicode.com
首页 > 其他好文 > 详细

Two Sum IV - Input is a BST

时间:2017-09-06 13:01:43      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:想法   建立   range   比较   two sum   style   http   color   bool   

    这道题属于容易,还是挺简单的,但是我用的方法比较复杂。

  题目:

    技术分享

  思路:

    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

标签:想法   建立   range   比较   two sum   style   http   color   bool   

原文地址:http://www.cnblogs.com/liuxinzhi/p/7483983.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!