📌  相关文章
📜  在数组左侧找到最接近的较小数字(1)

📅  最后修改于: 2023-12-03 14:51:27.967000             🧑  作者: Mango

在数组左侧找到最接近的较小数字

数组是编程中常见的数据结构之一,它将一组数据存储在一个连续的内存空间中。在数组中查找特定的数字是常见的编程任务之一。本文将介绍如何在数组左侧找到最接近的较小数字。

解决方法

要在数组中找到左侧最接近的较小数字,我们可以使用遍历算法。具体来说,我们可以从数组的左侧开始遍历,查找第一个小于目标数字的数字。如果没有找到这样的数字,则目标数字比数组中的所有数字都要大,这种情况下返回数组的最后一个数字即可。

def left_nearest_smaller(nums, target):
    for i in range(len(nums)-1, -1, -1):
        if nums[i] < target:
            return nums[i]
    return nums[-1]

在这个算法中,我们使用了Python的for循环和range函数来遍历数组。注意,由于我们要从右侧开始遍历,需要使用range函数的第二个参数指定步长为-1。然后,我们在每个数组元素上检查是否小于目标数字。当找到第一个小于目标数字的数字时,我们返回它。如果循环结束仍然没有找到这样的数字,说明目标数字比数组中的所有数字都要大,这种情况下返回数组的最后一个数字。

测试代码

对算法进行测试的代码如下:

print(left_nearest_smaller([1, 3, 5, 7, 9], 4))    # 3
print(left_nearest_smaller([1, 3, 5, 7, 9], 0))    # 1
print(left_nearest_smaller([1, 3, 5, 7, 9], 10))   # 9

这个测试代码使用了三个测试用例来检查算法的正确性。第一个测试用例查找数字4在数组[1, 3, 5, 7, 9]中左侧最接近的较小数字,预期结果为3。第二个测试用例查找数字0在数组[1, 3, 5, 7, 9]中左侧最接近的较小数字,预期结果为1。第三个测试用例查找数字10在数组[1, 3, 5, 7, 9]中左侧最接近的较小数字,预期结果为9。

结论

本文介绍了如何在数组中找到左侧最接近的较小数字。我们使用了遍历算法,该算法从右侧开始遍历数组,并查找第一个小于目标数字的数字。如果没有找到这样的数字,则返回数组的最后一个数字。我们还提供了测试代码来检查算法的正确性。