编程题
### 问题描述 小蓝最近在学习序列的相关知识。如果有一组数列,小蓝定义这个数列中的每一段子序列(即连续的数字)中的最大值和最小值的差异为 ”峰谷值” 。而这一组数列中所有的 “峰谷值” ,被称为 “峰谷总和”。 小蓝从网上下载了一组数列样本,现在他想知道共有多少 “峰谷总和” ? ### 输入格式 第一行包含一个整数 $n$ $(1 \leq n \leq 10^3)$,表示数列的长度。 第二行包含 $n$ 个整数 $a_1, a_2, ..., a_n$ $(1 \leq a_i \leq 10^5)$,表示数列中的值。 ### 输出格式 输出一个整数,表示这段数列的“峰谷总和”。 ### 样例输入 ```text 2 1 2 ``` ### 样例输出 ```text 1 ``` ### 提示 在这个例子中,子序列 [1, 2] 的“峰谷总和”是 1,因为它包含 3 段子序列: - [1] (从第 1 个数值到第 1 个数值),“峰谷值”是 0; - [1, 2] (从第 1 个数值到第 2 个数值),“峰谷值”是 1; - [2] (从第 2 个数值到第 2 个数值),“峰谷值”是 0; 所以,“峰谷总和”是所有“峰谷值”的总和,即 $0 + 1+ 0 = 1$。
查看答案
赣ICP备20007335号-2