当前位置: 面试刷题>> 最接近target的值 (经典算法题500道)


题目描述

给定一个整数数组 nums 和一个目标值 target,找出数组中所有元素与目标值的差的绝对值中最小的那个元素,并返回该元素。如果存在多个这样的元素,则返回任意一个即可。

示例 1:

输入: nums = [1,2,3,4], target = 2.7
输出: 3
解释: |3 - 2.7| = 0.3 是所有差值中最小的。

示例 2:

输入: nums = [1], target = 0
输出: 1
解释: |1 - 0| = 1 是唯一可能的差值。

PHP 代码示例:

function findClosestValue($nums, $target) {
    $minDiff = PHP_INT_MAX;
    $closestNum = null;
    
    foreach ($nums as $num) {
        $diff = abs($num - $target);
        if ($diff < $minDiff) {
            $minDiff = $diff;
            $closestNum = $num;
        }
    }
    
    return $closestNum;
}

// 示例使用
$nums = [1, 2, 3, 4];
$target = 2.7;
$result = findClosestValue($nums, $target);
echo "最接近target的值是: " . $result;

Python 代码示例:

def findClosestValue(nums, target):
    min_diff = float('inf')
    closest_num = None
    
    for num in nums:
        diff = abs(num - target)
        if diff < min_diff:
            min_diff = diff
            closest_num = num
    
    return closest_num

# 示例使用
nums = [1, 2, 3, 4]
target = 2.7
result = findClosestValue(nums, target)
print("最接近target的值是:", result)

JavaScript 代码示例:

function findClosestValue(nums, target) {
    let minDiff = Infinity;
    let closestNum = null;
    
    nums.forEach(num => {
        const diff = Math.abs(num - target);
        if (diff < minDiff) {
            minDiff = diff;
            closestNum = num;
        }
    });
    
    return closestNum;
}

// 示例使用
const nums = [1, 2, 3, 4];
const target = 2.7;
const result = findClosestValue(nums, target);
console.log("最接近target的值是:", result);

以上代码示例展示了如何在 PHP、Python 和 JavaScript 中解决这个算法问题。通过遍历数组中的每个元素,计算它与目标值的差的绝对值,并追踪最小的差值及对应的元素。最后返回这个最接近目标值的元素。

推荐面试题