PHP算法之最接近的三数之和
2024-10-07 20:13:59
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。
例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.
与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).
来源:力扣(LeetCode)
解题思路
返回三个数之和 运用双向指针法
1.现将数组排序
2.根据结果求绝对值 比较 那边更接近 结果
3.比结果小了左边指针 向右移动一位 ,右边大了向左移动一位
class Solution {
/**
* @param Integer[] $nums
* @param Integer $target
* @return Integer
*/
function threeSumClosest($nums, $target) {
sort($nums);
$count = count($nums);
$ans = $nums[0] + $nums[1] + $nums[2];
for( $i=0;$i<$count;$i++) {
$start = $i+1; $end = $count - 1;
while($start < $end) {
$sum = $nums[$start] + $nums[$end] + $nums[$i];
if(abs($target - $sum) < abs($target - $ans))
$ans = $sum;
if($sum > $target)
$end--;
else if($sum < $target)
$start++;
else
return $ans;
}
}
return $ans;
}
}
最新文章
- 5.6 JS中基本包装类型
- Sql Server系列:自定义函数
- Asp.net MVC 的八个扩展点
- winform控件
- IIS8发布WCF接口中遇到的问题总结
- 边表+SPFA (使用指针+动态内存)
- 关于group by 两个或以上条件的分析
- Unity3D 5.1烘培 操作
- Northwind数据库表字段介绍
- Android(java)学习笔记71:生产者和消费者之等待唤醒机制
- mv command:unable to remove target: Is a director
- jQuery为多个元素绑定相同的事件
- ftk学习记(消息框篇)
- bbs项目学习到的知识点(orm中的extra)
- Jupyter 常用快捷键
- Jenkins+PowerShell持续集成环境搭建(八)邮件通知
- Oracle 数据库监听配置和服务
- 【转】wampserver2.5 apache2.4.9配置https 图文
- IDEA 中的一些概念变化
- 一步步Cobol 400上手自学入门教程06 - 子程序调用