首先,我们需要定义什么是波峰。在这个问题中,波峰是指一个元素比它相邻的元素和它自身都要大的元素。

接下来,我们可以使用循环遍历数组来找到所有的波峰。在遍历过程中,我们需要检查当前元素是否是波峰,如果是,则将其添加到结果列表中。

以下是一个示例代码:

public List<Integer> findPeaks(int[] nums) {
    List<Integer> peaks = new ArrayList<>();

    for (int i = 1; i < nums.length - 1; i++) {
        if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
            peaks.add(nums[i]);
        }
    }

    return peaks;
}

这个代码会返回一个包含所有波峰的列表。如果你想要获得波峰之间的间隔,你可以在找到波峰时记录它们的索引,并计算它们之间的距离。

以下是修改后的示例代码:

public List<Integer> findPeaks(int[] nums) {
    List<Integer> peaks = new ArrayList<>();
    List<Integer> intervals = new ArrayList<>();

    for (int i = 1; i < nums.length - 1; i++) {
        if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
            peaks.add(i);
        }
    }

    for (int i = 1; i < peaks.size(); i++) {
        int interval = peaks.get(i) - peaks.get(i - 1);
        intervals.add(interval);
    }

    return intervals;
}

这个代码会返回一个包含所有波峰之间间隔的列表。你可以根据需要调整代码,以满足你的具体需求

android 找出一个数组中所有的波峰及波峰之间的间隔

原文地址: https://www.cveoy.top/t/topic/iMhL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录