515。各ツリー行の最大値を見つける
難易度: 中
トピック: ツリー、深さ優先検索、幅優先検索、バイナリ ツリー
バイナリ ツリーのルートを指定すると、ツリーの各行の最大値の配列 (0 からインデックス付き)を返します。
例 1:
例 2:
制約:
解決策:
問題 「各ツリー行の最大値を見つける」 では、バイナリ ツリーの各レベル (行) に存在する最大値を特定する必要があります。バイナリ ツリーが与えられた場合、目標はツリーを行ごとに走査し、各行から最大値を収集することです。この問題には、幅優先検索 (BFS) や 深さ優先検索 (DFS) などの基本的なツリー トラバーサル手法が関係します。
各行の最大値を見つける最も簡単な方法は、BFS:
を使用することです。代わりに、DFS も使用できます。
このソリューションを PHP で実装してみましょう: 515。各ツリー行の最大値を検索
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]
- レベル 0: ノード値: [1] → 最大: 1.
- レベル 1: ノード値: [3, 2] → 最大: 3.
- レベル 2: ノード値: [5, 3, 9] → 最大: 9。 #### 出力: [1, 3, 9].
時間計算量
入力: root = [1,3,2,5,3,null,9]
出力: [1, 3, 9].
この BFS ベースのソリューションは、線形時間計算量でツリーの各行の最大値を効率的に計算します。大きなツリー、負の値、空のツリーなどの特殊なケースを効果的に処理します。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
以上が。各ツリー行の最大値を見つけるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。