当前位置: 面试刷题>> 排序数组中最接近元素 (经典算法题500道)


### 题目描述补充 **题目:排序数组中最接近元素** 给定一个已排序的整数数组 `arr` 和一个目标值 `target`,请找出数组中与目标值最接近的元素,并返回该元素的值。 **注意**: - 数组 `arr` 已按非递减顺序(升序)排列。 - 数组中可能含有重复元素。 - 如果数组中有多个元素与目标值相同距离,则返回第一个找到的(即最左边的那个)。 ### 示例 **输入**: ``` arr = [1, 3, 5, 7] target = 4 ``` **输出**: ``` 3 ``` ### PHP 示例代码 ```php function findClosestElement($arr, $target) { $n = count($arr); $closest = $arr[0]; // 初始化最接近的元素为数组的第一个元素 $minDiff = abs($arr[0] - $target); // 初始化最小差值为第一个元素与目标值的差的绝对值 for ($i = 1; $i < $n; $i++) { $diff = abs($arr[$i] - $target); if ($diff < $minDiff) { $minDiff = $diff; $closest = $arr[$i]; } } return $closest; } // 测试 $arr = [1, 3, 5, 7]; $target = 4; echo findClosestElement($arr, $target); // 输出 3 ``` ### Python 示例代码 ```python def findClosestElement(arr, target): closest = arr[0] min_diff = abs(arr[0] - target) for num in arr[1:]: diff = abs(num - target) if diff < min_diff: min_diff = diff closest = num return closest # 测试 arr = [1, 3, 5, 7] target = 4 print(findClosestElement(arr, target)) # 输出 3 ``` ### JavaScript 示例代码 ```javascript function findClosestElement(arr, target) { let closest = arr[0]; let minDiff = Math.abs(arr[0] - target); for (let i = 1; i < arr.length; i++) { let diff = Math.abs(arr[i] - target); if (diff < minDiff) { minDiff = diff; closest = arr[i]; } } return closest; } // 测试 let arr = [1, 3, 5, 7]; let target = 4; console.log(findClosestElement(arr, target)); // 输出 3 ``` ### 码小课提醒 以上代码分别用 PHP、Python 和 JavaScript 实现了在已排序数组中查找与目标值最接近的元素的功能。在码小课网站上,你可以找到更多关于算法和数据结构的学习资源,帮助你提升编程能力。
推荐面试题