PHP程式:查詢兩個已排序陣列中最接近的數對
什麼是PHP?
PHP(超文字預處理器)是一種流行的指令碼語言,專為網頁開發而設計。它廣泛用於建立動態和互動式的網頁。PHP程式碼可以直接嵌入到HTML中,允許開發人員無縫地混合PHP和HTML。PHP可以連線資料庫,處理表單資料,生成動態內容,處理檔案上傳,與伺服器互動,並執行各種伺服器端任務。它支援各種網頁開發框架,例如Laravel、Symfony和CodeIgniter,這些框架提供了構建網頁應用程式的其他工具和功能。PHP是一種開源語言,擁有龐大的社群、豐富的文件和豐富的庫和擴充套件生態系統。
PHP程式:查詢兩個已排序陣列中最接近的數對
給定兩個已排序的陣列和一個數字x,找到其和最接近x的數對,並且該數對的元素分別來自每個陣列。
輸入
ar1 = [1, 3, 5, 7, 9]; ar2 = [2, 4, 6, 8, 10]; x = 12;
輸出
Output is 1 and 10 because 1+10=11 which is closer to 12.
示例
<?php
function printClosest($ar1, $ar2,
$m, $n, $x)
{
$diff = PHP_INT_MAX;
$res_l;
$res_r;
$l = 0;
$r = $n - 1;
while ($l < $m and $r >= 0) {
if (abs($ar1[$l] + $ar2[$r] - $x) < $diff){
$res_l = $l;
$res_r = $r;
$diff = abs($ar1[$l] + $ar2[$r] - $x);
}
if ($ar1[$l] + $ar2[$r] > $x)
$r--;
else
$l++;
}
echo "The closest pair is [", $ar1[$res_l], ", ", $ar2[$res_r], "]
";
}
$ar1 = array(1, 4, 8, 10);
$ar2 = array(2, 6, 9);
$m = count($ar1);
$n = count($ar2);
$x = 20;
printClosest($ar1, $ar2, $m, $n, $x);
?>
輸出
The closest pair is [10, 9]
結論
總而言之,提供的PHP程式採用雙指標技術,有效地查詢兩個已排序陣列中最接近的數對。它首先將數對和與給定數字“x”之間的差初始化為最大值。該程式維護兩個結果索引res_l和res_r,以儲存最接近數對的索引。透過比較當前數對和與x的絕對差,該程式在遇到更接近的數對時持續更新最接近的數對。它根據當前和是大於還是小於x調整指標,有效地縮小了搜尋範圍。
程式的時間複雜度取決於輸入陣列的大小m和n,因為它在遍歷兩個陣列一次時執行線性掃描。因此,它的複雜度為O(m + n)。PHP程式為查詢兩個已排序陣列中最接近的數對(其和最接近給定數字x)提供了一種有效的解決方案。透過使用雙指標方法,它提供了一種簡化的方法來識別具有最小絕對差的數對,從而在各種場景中提供靈活性和準確性。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP