<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)333:最大 BST 子樹(shù)

          共 2818字,需瀏覽 6分鐘

           ·

          2021-07-27 01:00

          算法的重要性,我就不多說(shuō)了吧,想去大廠,就必須要經(jīng)過(guò)基礎(chǔ)知識(shí)和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個(gè)公眾號(hào)后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問(wèn)題叫做 最大 BST 子樹(shù),我們先來(lái)看題面:
          https://leetcode-cn.com/problems/largest-bst-subtree/

          Given a binary tree, find the largest subtree which is a Binary Search Tree (BST), where largest means subtree with largest number of nodes in it. 

          Note: A subtree must include all of its descendants.


          給定一個(gè)二叉樹(shù),找到其中最大的二叉搜索樹(shù)(BST)子樹(shù),其中最大指的是子樹(shù)節(jié)點(diǎn)數(shù)最多的。
          注意:
          子樹(shù)必須包含其所有后代。

          示例


          示例:

          輸入: [10,5,15,1,8,null,7]

             10 
             / \
            5  15 
           /  \    \
          1   8   7

          輸出: 3
          解釋: 高亮部分為最大的 BST 子樹(shù)。
               返回值 3 在這個(gè)樣例中為子樹(shù)大小。


          解題

          思路一:判斷每個(gè)節(jié)點(diǎn)是否是二叉搜索樹(shù)


          class Solution:
              def largestBSTSubtree(self, root: TreeNode) -> int:

                  self.res = 0
                  def isValid(root, t1, t2):
                      if not root:
                          return 0
                      if root.val >= t2 or root.val <= t1:
                          return float("-inf")
                      return 1 + isValid(root.left, t1, root.val) + isValid(root.right, root.val, t2)

                  def helper(root):
                      if not root:
                          return 
                      self.res = max(self.res, isValid(root,float("-inf"), float("inf")) )
                      helper(root.left)
                      helper(root.right)


          好了,今天的文章就到這里,如果覺(jué)得有所收獲,請(qǐng)順手點(diǎn)個(gè)在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動(dòng)力 。

          上期推文:

          LeetCode1-320題匯總,希望對(duì)你有點(diǎn)幫助!

          LeetCode刷題實(shí)戰(zhàn)321:拼接最大數(shù)

          LeetCode刷題實(shí)戰(zhàn)322:零錢(qián)兌換

          LeetCode刷題實(shí)戰(zhàn)323:無(wú)向圖中連通分量的數(shù)目

          LeetCode刷題實(shí)戰(zhàn)324:擺動(dòng)排序 II

          LeetCode刷題實(shí)戰(zhàn)325:和等于 k 的最長(zhǎng)子數(shù)組長(zhǎng)度

          LeetCode刷題實(shí)戰(zhàn)326:3的冪
          LeetCode刷題實(shí)戰(zhàn)327:區(qū)間和的個(gè)數(shù)
          LeetCode刷題實(shí)戰(zhàn)328:奇偶鏈表
          LeetCode刷題實(shí)戰(zhàn)329:矩陣中的最長(zhǎng)遞增路徑
          LeetCode刷題實(shí)戰(zhàn)330:按要求補(bǔ)齊數(shù)組
          LeetCode刷題實(shí)戰(zhàn)331:驗(yàn)證二叉樹(shù)的前序序列化
          LeetCode刷題實(shí)戰(zhàn)332:重新安排行程

          瀏覽 47
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  怎么样免费观看欧美操逼 | 天天爽夜夜爽一区二区三区 | 成人毛片18女人毛片免费黑人看 | 乱伦图片AV | 六月丁香九月婷婷 |