494. Jumlah Sasaran
Kesukaran: Sederhana
Topik: Tatasusunan, Pengaturcaraan Dinamik, Penjejakan Belakang
Anda diberi nombor tatasusunan integer dan sasaran integer.
Anda mahu membina ungkapan daripada nombor dengan menambahkan salah satu simbol ' ' dan '-' sebelum setiap integer dalam nombor dan kemudian menggabungkan semua integer.
Kembalikan bilangan ungkapan berbeza yang boleh anda bina, yang menilai kepada sasaran.
Contoh 1:
Contoh 2:
Kekangan:
Penyelesaian:
Masalah "Jumlah Sasaran" melibatkan mencipta ungkapan menggunakan nombor dalam nombor tatasusunan dengan memberikan tanda atau - pada setiap nombor. Matlamatnya adalah untuk mengira bilangan ungkapan sedemikian yang dinilai kepada sasaran yang diberikan. Masalah ini boleh diselesaikan dengan cekap menggunakan pengaturcaraan dinamik atau menjejak ke belakang.
Output:
Cabaran:
Kami boleh menyelesaikan masalah ini menggunakan Pengaturcaraan Dinamik (Transformasi Jumlah Subset) atau Penjejakan Belakang. Di bawah, kami menggunakan Pengaturcaraan Dinamik (DP) untuk kecekapan.
Pemerhatian Utama:
Susun semula istilah: sum(P) sum(N) = sum(nums)
Biar S menjadi jumlah subset positif. Kemudian: S = (jumlah(bilangan) sasaran) / 2
Mari laksanakan penyelesaian ini dalam PHP: 494. Jumlah Sasaran
<?php /** * @param Integer[] $nums * @param Integer $target * @return Integer */ function findTargetSumWays($nums, $target) { ... ... ... /** * go to ./solution.php */ } // Example usage: $nums = [1, 1, 1, 1, 1]; $target = 3; echo findTargetSumWays($nums, $target); // Output: 5 ?>
Pengesahan Input:
Logik Pengaturcaraan Dinamik:
Keputusan:
Input: nums = [1, 1, 1, 1, 1], sasaran = 3
Input: nums = [1,1,1,1,1], sasaran = 3
Output: 5
Pendekatan ini secara cekap mengira bilangan cara untuk membentuk jumlah sasaran menggunakan pengaturcaraan dinamik. Dengan mengurangkan masalah kepada jumlah subset, kami memanfaatkan struktur DP untuk prestasi yang lebih baik.
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 . Jumlah Sasaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!