leetcode刷题:用PHP解决twoSum的简单解法

twoSum算是一道入门级,非常简单的题,看到这题的时候我想的第一个方法就是穷举法,用两次for循环来判断,但这种方法的时间复杂度较高,下面有一种简单的方法,打败了90%以上的用户:

function twoSum($nums, $target) {
    $res = [];
    $match = [];

    foreach($nums as $k=>$v){
        if(!isset($match[$target-$v])){
            $match[$target-$v] = $k;
        }
    }
    foreach($nums as $kk=>$vv){
        if(isset($match[$vv]) && $match[$vv] != $kk){
            $res = [ $kk, $match[$vv] ];
            break;
        }
    }

    return $res;
}

你可能感兴趣的:(leetcode)