题目:给定一个整数数组nums和一个目标值target,请在数组中找到和为目标值的两个整数,并返回它们的数组下标。您可以假设每个输入只有一个答案。但是,您不能在此数组中重复使用相同的元素。例子:给定nums=[2,7,11,15],target=9,因为nums[0]+nums[1]=2+7=9,返回[0,1]暴力解(初次提交):class解决方案{/***@paramInteger[]$nums*@paramInteger$target*@returnInteger[]*/functiontwoSum($nums,$target){$res=array();$count=count($nums);for($i=0;$i<$count-1;$i++){for($j=$i+1;$j<$count;$j++){$sum=$nums[$i]+$数字[$j];如果($sum==$target){$res=[$i,$j];}}}返回$res;}}执行时间为1900ms,内存消耗为15.8Mb使用isset反转键值(参考网友):classSolution{/***@paramInteger[]$nums*@paramInteger$target*@returnInteger[]*/functiontwoSum($nums,$target){$found=[];foreach($numsas$key=>$val){$diff=$target-$val;如果(!isset($found[$diff])){$found[$val]=$key;继续;}返回[$key,$found[$diff]];}}}执行时间12ms,内存消耗16.1Mb第一种方法最暴力耗时,第二种方法就是以空间换时间
