📜  数组中局部极值数的Python程序(1)

📅  最后修改于: 2023-12-03 15:26:11.144000             🧑  作者: Mango

数组中局部极值数的Python程序

在Python中,有时候我们需要找到一个数组中的局部极值数,即数组中的某个数比它前面和后面的数都大或都小。这里就提供一段程序来解决这个问题。

算法思路

我们可以通过扫描一次数组来确定局部极值数。遍历每个元素,如果当前元素比前面一个元素大,后面一个元素小,或者当前元素比前面一个元素小,后面一个元素大,那么这个元素就是局部极值数。

Python代码
def find_local_extremum(numbers):
    """
    在数组中寻找局部极值数
    
    Args:
        numbers: 数组,包含n个元素
    
    Returns:
        res: 包含局部极值数的数组
    """
    res = []
    n = len(numbers)
    if n <= 2:
        return res
    for i in range(1, n-1):
        if numbers[i] > numbers[i-1] and numbers[i] > numbers[i+1]:
            res.append(numbers[i])
        elif numbers[i] < numbers[i-1] and numbers[i] < numbers[i+1]:
            res.append(numbers[i])
    return res
使用示例
numbers = [3, 2, 5, 6, 8, 1, 9, 10]
res = find_local_extremum(numbers)
print(res) # 输出 [5, 1]
总结

以上就是寻找数组中局部极值数的Python程序,可以很方便地解决这个问题。不过需要注意的是,如果数字数组长度小于等于2,那么就不会有局部极值数存在。