@@ -81780,8 +81780,7 @@ <h3 id="solution-1-dfs">Solution 1: DFS</h3>
8178081780<span class="normal">31</span>
8178181781<span class="normal">32</span>
8178281782<span class="normal">33</span>
81783- <span class="normal">34</span>
81784- <span class="normal">35</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
81783+ <span class="normal">34</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
8178581784<span class="cm"> * Definition for a binary tree node.</span>
8178681785<span class="cm"> * struct TreeNode {</span>
8178781786<span class="cm"> * int val;</span>
@@ -81797,20 +81796,19 @@ <h3 id="solution-1-dfs">Solution 1: DFS</h3>
8179781796<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">maxSumBST</span><span class="p">(</span><span class="n">TreeNode</span><span class="o">*</span><span class="w"> </span><span class="n">root</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
8179881797<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
8179981798<span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">inf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="mi">30</span><span class="p">;</span>
81800-
81801- <span class="w"> </span><span class="n">function</span><span class="o"><</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span><span class="p">(</span><span class="n">TreeNode</span><span class="o">*</span><span class="p">)</span><span class="o">></span><span class="w"> </span><span class="n">dfs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="o">&</span><span class="p">](</span><span class="n">TreeNode</span><span class="o">*</span><span class="w"> </span><span class="n">root</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
81799+ <span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">dfs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="o">&</span><span class="p">](</span><span class="k">this</span><span class="w"> </span><span class="k">auto</span><span class="o">&&</span><span class="w"> </span><span class="n">dfs</span><span class="p">,</span><span class="w"> </span><span class="n">TreeNode</span><span class="o">*</span><span class="w"> </span><span class="n">root</span><span class="p">)</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">array</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="o">></span><span class="w"> </span><span class="p">{</span>
8180281800<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">root</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
81803- <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span><span class=" p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">inf</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">};</span>
81801+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">inf</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">};</span>
8180481802<span class="w"> </span><span class="p">}</span>
8180581803<span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">l</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dfs</span><span class="p">(</span><span class="n">root</span><span class="o">-></span><span class="n">left</span><span class="p">);</span>
8180681804<span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dfs</span><span class="p">(</span><span class="n">root</span><span class="o">-></span><span class="n">right</span><span class="p">);</span>
8180781805<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">root</span><span class="o">-></span><span class="n">val</span><span class="p">;</span>
8180881806<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">l</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">l</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
8180981807<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">l</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">r</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">v</span><span class="p">;</span>
8181081808<span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">max</span><span class="p">(</span><span class="n">ans</span><span class="p">,</span><span class="w"> </span><span class="n">s</span><span class="p">);</span>
81811- <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span><span class=" p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">min</span><span class="p">(</span><span class="n">l</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="n">v</span><span class="p">),</span><span class="w"> </span><span class="n">max</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span><span class="w"> </span><span class="n">v</span><span class="p">),</span><span class="w"> </span><span class="n">s</span><span class="p">};</span>
81809+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">min</span><span class="p">(</span><span class="n">l</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="n">v</span><span class="p">),</span><span class="w"> </span><span class="n">max</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span><span class="w"> </span><span class="n">v</span><span class="p">),</span><span class="w"> </span><span class="n">s</span><span class="p">};</span>
8181281810<span class="w"> </span><span class="p">}</span>
81813- <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span><span class=" p">( </span><span class="mi">4 </span><span class="p">) ;</span>
81811+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">{ </span><span class="mi">0 </span><span class="p">} ;</span>
8181481812<span class="w"> </span><span class="p">};</span>
8181581813<span class="w"> </span><span class="n">dfs</span><span class="p">(</span><span class="n">root</span><span class="p">);</span>
8181681814<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ans</span><span class="p">;</span>
0 commit comments