Day31

2017-12-21  本文已影响0人  wendy_要努力努力再努力
  1. 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所以需要强制转换
  1. 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))
上一篇下一篇

猜你喜欢

热点阅读