📅  最后修改于: 2023-12-03 15:10:21.685000             🧑  作者: Mango
在程序设计中,我们经常需要在数组中查找一些特定的元素,如极值数。在本文中,我们将介绍如何编写一个可以查找数组中局部极值数的Java程序。
局部极值,也称为局部极大值或局部极小值,指的是一个数组中的一个元素,该元素比相邻的元素都要大或小。
假设一个数组中存在一个元素,该元素的值大于该元素的前一个元素和后一个元素的值,则该元素被称为局部极大值。
例如,对于数组 [5, 3, 4, 8, 2]
,元素 5 和 8 是局部极大值。
假设一个数组中存在一个元素,该元素的值小于该元素的前一个元素和后一个元素的值,则该元素被称为局部极小值。
例如,对于数组 [7, 2, 6, 1, 9]
,元素 2 和 1 是局部极小值。
我们可以将一个数组中的所有元素遍历一遍,同时检查每个元素是否是局部极值。如果元素是局部极值,则将其添加到一个列表中,最后返回该列表。
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程序。通过将一个数组中的所有元素遍历一遍,并检查每个元素是否是局部极值来完成任务。