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;
}