国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 后端開發(fā) php教程 。查找每個樹行中的最大值

。查找每個樹行中的最大值

Dec 29, 2024 pm 02:13 PM

515。找到每行樹中的最大值

難度:中等

主題:樹、深度優(yōu)先搜索、廣度優(yōu)先搜索、二叉樹

給定二叉樹的根,返回樹中每一行中最大值的數組(0索引)。

示例1:

. Find Largest Value in Each Tree Row

  • 輸入: root = [1,3,2,5,3,null,9]
  • 輸出: [1,3,9]

示例2:

  • 輸入: root = [1,2,3]
  • 輸出: [1,3]

約束:

  • 樹中的節(jié)點數量將在 [0, 104] 范圍內。
  • -231 31 - 1

解決方案:

問題“查找每個樹行中的最大值”需要識別二叉樹的每個級別(行)中存在的最大值。給定一棵二叉樹,目標是逐行遍歷樹并收集每一行的最大值。這個問題涉及基本的樹遍歷技術,例如廣度優(yōu)先搜索(BFS)深度優(yōu)先搜索(DFS)。

要點

  1. 樹遍歷:解決方案涉及遍歷二叉樹的所有級別,以確定每個級別的最大值。
  2. 廣度優(yōu)先搜索(BFS):BFS適合逐級遍歷,可以簡化查找每一行中最大值的過程。
  3. 約束:處理邊緣情況,例如空樹和約束范圍內具有大或小整數值的節(jié)點。

接近

查找每行中最大值的最直接方法是使用 BFS:

  • 逐層遍歷樹。
  • 對于每個級別,跟蹤最大值。

或者,也可以使用DFS

  • 遞歸遍歷樹并維護每個深度處最大值的記錄。

計劃

  1. 初始化一個數組來存儲每行的最大值。
  2. 使用隊列進行BFS遍歷:
    • 從根節(jié)點開始。
    • 在移動到下一個級別之前處理當前級別的所有節(jié)點。
  3. 每個級別:
    • 迭代所有節(jié)點并找到最大值。
    • 將此值添加到結果數組中。
  4. 遍歷完成后返回結果數組。

解決步驟

  1. 檢查輸入:如果根為空,則返回空數組。
  2. 設置 BFS
    • 使用以根節(jié)點初始化的隊列。
    • 初始化一個空結果數組。
  3. 遍歷級別
    • 對于每個級別,跟蹤最大值。
    • 將子節(jié)點添加到下一級隊列中。
  4. 更新結果
    • 將每個級別的最大值附加到結果數組中。
  5. 返回結果:返回包含每行最大值的結果數組。

讓我們用 PHP 實現(xiàn)這個解決方案:515。找到每行樹中的最大值

<?php
// Definition for a binary tree node.
class TreeNode {
    public $val = null;
    public $left = null;
    public $right = null;
    function __construct($val = 0, $left = null, $right = null) {
        $this->val = $val;
        $this->left = $left;
        $this->right = $right;
    }
}

/**
 * @param TreeNode $root
 * @return Integer[]
 */
function largestValues($root) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Example usage:
$root = new TreeNode(1);
$root->left = new TreeNode(3);
$root->right = new TreeNode(2);
$root->left->left = new TreeNode(5);
$root->left->right = new TreeNode(3);
$root->right->right = new TreeNode(9);

print_r(largestValues($root)); // Output: [1, 3, 9]
?>

解釋:

輸入:[1,3,2,5,3,null,9]

  1. 級別 0:節(jié)點值:[1] → 最大值:1。
  2. 級別 1:節(jié)點值:[3, 2] → 最大值:3。
  3. 級別 2:節(jié)點值:[5,3,9] → 最大值:9。 #### 輸出:[1, 3, 9].

時間復雜度

  • BFS 遍歷:每個節(jié)點處理一次 → O(n).
  • 尋找最大值:在遍歷過程中完成 → 每層 O(1)。
  • 總計O(n)。

空間復雜度

  • 隊列存儲:最多樹的寬度(最大級別的節(jié)點數)→ O(w) 其中 w 是樹的最大寬度。

示例輸出

輸入:root = [1,3,2,5,3,null,9]

輸出:[1,3,9].

這種基于 BFS 的解決方案以線性時間復雜度有效計算每個樹行中的最大值。它可以有效地處理大樹、負值和空樹等邊緣情況。

聯(lián)系鏈接

如果您發(fā)現(xiàn)本系列有幫助,請考慮在 GitHub 上給 存儲庫 一個星號或在您最喜歡的社交網絡上分享該帖子?。您的支持對我來說意義重大!

如果您想要更多類似的有用內容,請隨時關注我:

  • 領英
  • GitHub

以上是。查找每個樹行中的最大值的詳細內容。更多信息請關注PHP中文網其他相關文章!

本站聲明
本文內容由網友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

我如何了解最新的PHP開發(fā)和最佳實踐? 我如何了解最新的PHP開發(fā)和最佳實踐? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

什么是PHP,為什么它用于Web開發(fā)? 什么是PHP,為什么它用于Web開發(fā)? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

如何設置PHP時區(qū)? 如何設置PHP時區(qū)? Jun 25, 2025 am 01:00 AM

tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

我如何驗證PHP中的用戶輸入以確保其符合某些標準? 我如何驗證PHP中的用戶輸入以確保其符合某些標準? Jun 22, 2025 am 01:00 AM

TovalidateuserinputinPHP,usebuilt-invalidationfunctionslikefilter_var()andfilter_input(),applyregularexpressionsforcustomformatssuchasusernamesorphonenumbers,checkdatatypesfornumericvalueslikeageorprice,setlengthlimitsandtrimwhitespacetopreventlayout

編寫清潔和可維護的PHP代碼的最佳實踐是什么? 編寫清潔和可維護的PHP代碼的最佳實踐是什么? Jun 24, 2025 am 12:53 AM

寫干凈、易維護的PHP代碼關鍵在于清晰命名、遵循標準、合理結構、善用注釋和可測試性。1.使用明確的變量、函數和類名,如$userData和calculateTotalPrice();2.遵循PSR-12標準統(tǒng)一代碼風格;3.按職責拆分代碼結構,使用MVC或Laravel式目錄組織;4.避免面條式代碼,將邏輯拆分為單一職責的小函數;5.在關鍵處添加注釋并撰寫接口文檔,明確參數、返回值和異常;6.提高可測試性,采用依賴注入、減少全局狀態(tài)和靜態(tài)方法。這些做法提升代碼質量、協(xié)作效率和后期維護便利性。

什么是php(serialize(),Unserialize())中的數據序列化? 什么是php(serialize(),Unserialize())中的數據序列化? Jun 22, 2025 am 01:03 AM

thephpfunctionserize()andunSerialize()redustoconvertComplexdatStructDestoresToroStoroStoroSandaBackagagain.1.Serialize()

如何將PHP代碼嵌入HTML文件中? 如何將PHP代碼嵌入HTML文件中? Jun 22, 2025 am 01:00 AM

可以將PHP代碼嵌入HTML文件中,但需確保文件以.php為擴展名,以便服務器能正確解析。使用標準的標簽包裹PHP代碼,可在HTML中任意位置插入動態(tài)內容。此外,可在同一文件中多次切換PHP與HTML,實現(xiàn)條件渲染等動態(tài)功能。務必注意服務器配置及語法正確性,避免因短標簽、引號錯誤或遺漏結束標簽導致問題。

如何使用PHP執(zhí)行SQL查詢? 如何使用PHP執(zhí)行SQL查詢? Jun 24, 2025 am 12:54 AM

Yes,youcanrunSQLqueriesusingPHP,andtheprocessinvolveschoosingadatabaseextension,connectingtothedatabase,executingqueriessafely,andclosingconnectionswhendone.Todothis,firstchoosebetweenMySQLiorPDO,withPDObeingmoreflexibleduetosupportingmultipledatabas

See all articles