2563. Kira Bilangan Pasangan Adil
Kesukaran: Sederhana
Topik: Tatasusunan, Dua Penunjuk, Carian Binari, Isih
Diberikan 0-diindeks nombor tatasusunan integer bersaiz n dan dua integer bawah dan atas, kembalikan bilangan pasangan saksama.
Sepasang (i, j) adalah adil jika:
Contoh 1:
Contoh 2:
Kekangan:
Petunjuk:
Penyelesaian:
Kita boleh menggunakan pendekatan berikut:
Mari laksanakan penyelesaian ini dalam PHP: 2563. Kira Bilangan Pasangan Adil
<?php /** * @param Integer[] $nums * @param Integer $lower * @param Integer $upper * @return Integer */ function countFairPairs($nums, $lower, $upper) { ... ... ... /** * go to ./solution.php */ } /** * Helper function for binary search to find left boundary * * @param $arr * @param $target * @param $start * @return int|mixed */ function lowerBound($arr, $target, $start) { ... ... ... /** * go to ./solution.php */ } /** * Helper function for binary search to find right boundary * * @param $arr * @param $target * @param $start * @return int|mixed */ function upperBound($arr, $target, $start) { ... ... ... /** * go to ./solution.php */ } // Example usage: $nums = [0, 1, 7, 4, 4, 5]; $lower = 3; $upper = 6; echo countFairPairs($nums, $lower, $upper); // Output: 6 ?>
Pendekatan ini mempunyai kerumitan masa O(n log n) disebabkan oleh pengisihan dan carian binari untuk setiap elemen, yang cukup cekap untuk input yang besar.
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 Kira Bilangan Pasangan Adil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!