<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)255:驗(yàn)證前序遍歷序列二叉搜索樹(shù)

          共 2616字,需瀏覽 6分鐘

           ·

          2021-05-05 06:58

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

          今天和大家聊的問(wèn)題叫做 驗(yàn)證前序遍歷序列二叉搜索樹(shù),我們先來(lái)看題面:
          https://leetcode-cn.com/problems/verify-preorder-sequence-in-binary-search-tree/

          Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary search tree.


          You may assume each number in the sequence is unique.


          Follow up: Could you do it using only constant space complexity?

          給定一個(gè)整數(shù)數(shù)組,你需要驗(yàn)證它是否是一個(gè)二叉搜索樹(shù)正確的先序遍歷序列。
          你可以假定該序列中的數(shù)都是不相同的。


          示例


          示例 1
          輸入: [5,2,6,1,3]
          輸出: false

          示例 2
          輸入: [5,2,1,3,6]
          輸出: true

          進(jìn)階挑戰(zhàn):
          您能否使用恒定的空間復(fù)雜度來(lái)完成此題?


          解題


          由于二叉搜索樹(shù)中,樹(shù)上任何一個(gè)節(jié)點(diǎn),它的值比所有的左子樹(shù)大,比所有的右子樹(shù)小
          遇到左子樹(shù)時(shí),全部入棧,遇到右子樹(shù)時(shí),將與其平級(jí)的左子樹(shù)出?!舅哂写笥谄郊?jí)左子樹(shù)的性質(zhì)】;
          出現(xiàn)出棧的時(shí)候,新來(lái)的元素必定是大于已經(jīng)出棧的元素。

          class Solution {
          public:
              bool verifyPreorder(vector<int>& preorder) {
                  if (!preorder.size()) return true;
                  stack<int> s;
                  s.push(preorder[0]);
                  int temp = -1e10;
                  for (int i=1;i<preorder.size();i++)
                  {
                      if (preorder[i] < temp) return false;
                      while(!s.empty() && preorder[i] > s.top())
                      {
                          temp=s.top();
                          s.pop();
                      }
                      s.push(preorder[i]);
                  }
                  return true;
              }
          };


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

          上期推文:

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

          LeetCode刷題實(shí)戰(zhàn)241:為運(yùn)算表達(dá)式設(shè)計(jì)優(yōu)先級(jí)

          LeetCode刷題實(shí)戰(zhàn)242:有效的字母異位詞

          LeetCode刷題實(shí)戰(zhàn)243:最短單詞距離

          LeetCode刷題實(shí)戰(zhàn)244:最短單詞距離 II

          LeetCode刷題實(shí)戰(zhàn)245:最短單詞距離 III

          LeetCode刷題實(shí)戰(zhàn)246:中心對(duì)稱(chēng)數(shù)

          LeetCode刷題實(shí)戰(zhàn)247:中心對(duì)稱(chēng)數(shù)II

          LeetCode刷題實(shí)戰(zhàn)248:中心對(duì)稱(chēng)數(shù)III

          LeetCode刷題實(shí)戰(zhàn)249:移位字符串分組

          LeetCode刷題實(shí)戰(zhàn)250:統(tǒng)計(jì)同值子樹(shù)

          LeetCode刷題實(shí)戰(zhàn)251:展開(kāi)二維向量

          LeetCode刷題實(shí)戰(zhàn)252:會(huì)議室

          LeetCode刷題實(shí)戰(zhàn)253:會(huì)議室II

          LeetCode刷題實(shí)戰(zhàn)254:因子的組合


          瀏覽 85
          點(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>
                  经典三级在线视频 | 成人影音百度 | 草逼视频网 | 欧美精品三级片 | 外国操逼视频网站 |