美文网首页
1. 两数之和

1. 两数之和

作者: 织毛衣的手 | 来源:发表于2018-05-17 10:44 被阅读0次

    LeetCode 的算法题 PHP解法记录

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

    你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9

    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    解:

     /*  
    两数之和
    先对数组进行从小到大的排序,然后设置首尾指针--->
    假设两指针为i,j,其中i < j,如果a[i]、a[j]之和大于指定值,那么要找的两个数一定在j的左侧,
    如果a[i]、a[j]之和小于指定值,那么要找的两个数一定在i的右侧 
    */
    function twoCount($nums=array(),$result=0){
        sort($nums);
        echo "<pre>";
        var_dump($nums);
    
        $a=0;
        $z=count($nums)-1;
        while ($a < $z ) {
            # code...
            if($result == ($nums[$a] + $nums[$z])){
                die($nums[$a] .'和'. $nums[$z]);
            }else if($result > ($nums[$a] + $nums[$z])){
                $a++;
            }else if($result < ($nums[$a] + $nums[$z])){
                $z--;
            }
        }
    
        echo '结果不存在';
    
    }
    $arr= [2, 7, 11, 15,-1,0];
    twoCount($arr,10);

    相关文章

      网友评论

          本文标题:1. 两数之和

          本文链接:https://www.haomeiwen.com/subject/dcxbdftx.html