美文网首页
15. 三数之和

15. 三数之和

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

    LeetCode 的算法题 PHP解法记录

    给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

    注意:答案中不可以包含重复的三元组。

    例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],

    满足要求的三元组集合为:
    [
    [-1, 0, 1],
    [-1, -1, 2]
    ]

    解:

        $a=array(
        -1, 0, 1, 2, -1, -4
    );
    
    function threeCount($arr){
        // 遍历全部的三个数组合
    $res=array();
    
    for($n=0;$n<count($arr)-2;$n++){
    
        for($i=$n+1;$i<count($arr)-1;$i++){
            for ($j = $i+1; $j < count($arr) ; $j++) {
                $res[]=array($arr[$n],$arr[$i],$arr[$j]);
            }
        }      
    }
        // 取结果0 ,去重
        $data=array();
        $check=array();
        foreach ($res as $key => $value) {
            if(array_sum($value) == 0){
                $ch=$value;
                sort($ch);
                $str=implode($ch);
                if(in_array($str,$check)){
                    continue;
                }else{
                    $check[] =$ch;
                }
            
                $data[] = $value;
            }
        }
    
        var_dump($data);
        var_dump($check);
    }
    
    threeCount($a);
    

    相关文章

      网友评论

          本文标题:15. 三数之和

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