PHP 在两个排序数组中查找最接近的一对

PHP 在两个排序数组中查找最接近的一对

什么是PHP

PHP(Hypertext Preprocessor)是一种为Web开发而设计的流行脚本语言。它被广泛用于创建动态和交互式的网页。PHP代码可以直接嵌入HTML中,允许开发者无缝地结合PHP和HTML。PHP可以连接数据库,处理表单数据,生成动态内容,处理文件上传,与服务器交互以及执行各种服务器端任务。它支持各种Web开发框架,如Laravel,Symfony和CodeIgniter,这些框架为构建Web应用程序提供了额外的工具和功能。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 andr >= 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最接近的一对。通过利用两个指针的方法,它提供了一种简化的方法来识别具有最小绝对差异的一对,在各种情况下提供了灵活性和准确性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程