Day33

984 ワード

  • Max Conssecutive Ones考え方:0,1配列の中で最も長い連続1の長さを探します.pythonの関数を十分に利用するために、私はそれを文字配列の形式に変換して、接続して分割して、ステップは確かに複雑です.リファレンスケースに比べて、0が現れると再計算が開始され、簡単です.
  • class Solution(object):
        def findMaxConsecutiveOnes(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            s = map(str,nums)
            s1= ''.join(s)
            tmp = 0
            for i in s1.split('0'):      
                tmp = max(tmp,len(i))
            return tmp
    
  • Invert Binary Tree考え方:各ノードの左右のサブノードを再帰的に交換するが、上から下に行かなければならない.関数は自分で呼び出して再帰と呼ぶ.
  • class Solution(object):
        def invertTree(self, root):
            """
            :type root: TreeNode
            :rtype: TreeNode
            """
            if root:
                root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
            return root
    

    次回は「再帰」を専攻するテーマの深さ優先検索で再帰が多く使われますが、このような問題も一般的にはツリー構造です