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

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

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

在程序设计中,我们经常需要在数组中查找一些特定的元素,如极值数。在本文中,我们将介绍如何编写一个可以查找数组中局部极值数的Java程序。

局部极值数是什么?

局部极值,也称为局部极大值或局部极小值,指的是一个数组中的一个元素,该元素比相邻的元素都要大或小。

局部极大值

假设一个数组中存在一个元素,该元素的值大于该元素的前一个元素和后一个元素的值,则该元素被称为局部极大值。

例如,对于数组 [5, 3, 4, 8, 2],元素 5 和 8 是局部极大值。

局部极小值

假设一个数组中存在一个元素,该元素的值小于该元素的前一个元素和后一个元素的值,则该元素被称为局部极小值。

例如,对于数组 [7, 2, 6, 1, 9],元素 2 和 1 是局部极小值。

Java程序
程序实现

我们可以将一个数组中的所有元素遍历一遍,同时检查每个元素是否是局部极值。如果元素是局部极值,则将其添加到一个列表中,最后返回该列表。

import java.util.ArrayList;
import java.util.List;

public class LocalExtrema {
    public static List<Integer> findLocalExtrema(int[] array) {
        List<Integer> result = new ArrayList<>();
        for (int i = 1; i < array.length - 1; i++) {
            if (array[i] > array[i - 1] && array[i] > array[i + 1]) {
                result.add(array[i]);
            } else if (array[i] < array[i - 1] && array[i] < array[i + 1]) {
                result.add(array[i]);
            }
        }
        return result;
    }
}
使用示例

以下是一个使用示例:

public static void main(String[] args) {
    int[] array = {5, 3, 4, 8, 2};
    List<Integer> localExtrema = LocalExtrema.findLocalExtrema(array);
    System.out.println(localExtrema.toString());
    // Output: [5, 8]
}
总结

本文介绍了如何编写一个可以查找数组中局部极值数的Java程序。通过将一个数组中的所有元素遍历一遍,并检查每个元素是否是局部极值来完成任务。