Day31
2017-12-21 本文已影响0人
wendy_要努力努力再努力
- Average of Levels in Binary Tree
思路:二叉树的每层的均值,开始想的是如何此才能用递归将每层的值找出来,然后用个average,可惜做了那么多题,还是不会递归该怎么写。很明显写了个新的函数,在新函数里有嵌套递归,将左右结点付给函数作为参数,最终只要调用root作为函数参数,内部便会一直计算下去。
class Solution(object):
def averageOfLevels(self, root):
"""
:type root: TreeNode
:rtype: List[float]
"""
info = []
def dfs(node,depth=0):
if node:
if len(info) <= depth:
info.append([0,0]) #这是每层的初始化,必须有
info[depth][0] += node.val
info[depth][1] += 1
dfs(node.left,depth+1)
dfs(node.right,depth+1)
dfs(root)
return [s/float(c) for s,c in info] #题目中指明要float类型 一般为Int所以需要强制转换
- Longest Uncommon Subsequence I
思路:难怪反对率这么高,求最长的不工子序列,那不就是两个序列如果不相等,短的那条便是最长的不公共子序列
class Solution(object):
def findLUSlength(self, a, b):
"""
:type a: str
:type b: str
:rtype: int
"""
if a == b:
return -1
return max(len(a), len(b))