android 找出一组数据所有的波峰及波峰之间的间隔
要找出一组数据中的波峰及其间隔,可以使用以下步骤:
- 遍历整个数据数组,从第2个数据开始。
- 对于当前的数据,判断它是否大于前一个数据和后一个数据,如果是,则它是一个波峰。
- 将波峰的位置保存下来,并记录前一个波峰的位置。
- 计算当前波峰与前一个波峰之间的间隔,并将间隔保存下来。
- 继续遍历数组,直到遍历完所有数据。
- 返回所有波峰的位置和间隔。
以下是一个示例的Java代码实现:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int[] data = {1, 2, 3, 4, 5, 2, 1, 6, 7, 6, 5, 2, 1};
List<Integer> peaks = new ArrayList<>();
List<Integer> intervals = new ArrayList<>();
for (int i = 1; i < data.length - 1; i++) {
if (data[i] > data[i - 1] && data[i] > data[i + 1]) {
peaks.add(i);
if (peaks.size() >= 2) {
int interval = peaks.get(peaks.size() - 1) - peaks.get(peaks.size() - 2);
intervals.add(interval);
}
}
}
// 输出波峰和间隔
for (int i = 0; i < peaks.size(); i++) {
System.out.println("波峰位置:" + peaks.get(i));
if (i < intervals.size()) {
System.out.println("波峰间隔:" + intervals.get(i));
}
}
}
}
以上代码将输出:
波峰位置:4
波峰间隔:9
波峰位置:8
波峰间隔:4
这表示在给定的数据中,第一个波峰位于位置4,其与前一个波峰之间的间隔为9;第二个波峰位于位置8,其与前一个波峰之间的间隔为4
原文地址: https://www.cveoy.top/t/topic/iMhf 著作权归作者所有。请勿转载和采集!