515. Cari Nilai Terbesar dalam Setiap Baris Pokok
Kesukaran: Sederhana
Topik: Pokok, Carian Pertama Kedalaman, Carian Luas-Pertama, Pokok Binari
Memandangkan akar pokok binari, kembalikan tatasusunan nilai terbesar dalam setiap baris pokok (0-diindeks).
Contoh 1:
Contoh 2:
Kekangan:
Penyelesaian:
Masalahnya "Cari Nilai Terbesar dalam Setiap Baris Pokok" memerlukan mengenal pasti nilai terbesar yang terdapat pada setiap peringkat (baris) pokok binari. Memandangkan pokok binari, matlamatnya adalah untuk melintasi baris pokok demi baris dan mengumpul nilai maksimum daripada setiap baris. Masalah ini melibatkan teknik rentas pokok asas seperti Breadth-First Search (BFS) atau Depth-First Search (DFS).
Pendekatan paling mudah untuk mencari nilai terbesar dalam setiap baris ialah menggunakan BFS:
Sebagai alternatif, DFS juga boleh digunakan:
Mari laksanakan penyelesaian ini dalam PHP: 515. Cari Nilai Terbesar dalam Setiap Baris Pokok
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] ?>Penjelasan:
Input: [1,3,2,5,3,null,9]
- Tahap 0: Nilai nod: [1] → Maksimum: 1.
- Tahap 1: Nilai nod: [3, 2] → Maksimum: 3.
- Tahap 2: Nilai nod: [5, 3, 9] → Maksimum: 9. #### Output: [1, 3, 9].
Kerumitan Masa
Input: akar = [1,3,2,5,3,null,9]
Output: [1, 3, 9].
Penyelesaian berasaskan BFS ini secara cekap mengira nilai terbesar dalam setiap baris pokok dengan kerumitan masa linear. Ia mengendalikan pokok besar, nilai negatif dan bekas tepi seperti pokok kosong dengan berkesan.
Pautan Kenalan
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberi repositori bintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna bagi saya!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Atas ialah kandungan terperinci . Cari Nilai Terbesar dalam Setiap Baris Pokok. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!