当前位置: 首页 > 后端技术 > PHP

每日一算法:两个数之和

时间:2023-03-30 05:21:05 PHP

题目:给定一个整数数组nums和一个目标值target,请找出数组中和为目标值的两个整数,并返回它们的数组标记。说明:您可以假设每个输入只有一个答案。但是,您不能在此数组中重复使用相同的元素。例子:给定nums=[2,7,11,15],target=9,因为nums[0]+nums[1]=2+7=9,所以返回[0,1]解法一:暴力法思维分析:暴力破解方法很简单。它遍历每一个元素x,寻找是否有一个目标元素的值等于target-x。PHP代码实现:/***@paramInteger[]$nums*@paramInteger$target*@returnInteger[]*/functiontwoSum($nums,$target){for($i=0;$i$target){$right-=1;}elseif($nums[$left]+$nums[$right]<$target){$left+=1;}}}复杂度分析:时间复杂度:O(logn)空间复杂度:O(1)四种方案的性能比较时间复杂度:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)