米思米网站订单取消怎么做,营销型网站建设价值,做猎头可以在哪些网站注册,合肥建设云平台【华为OD】C卷真题 100%通过#xff1a;攀登者1 C/C源码实现
目录
题目描述#xff1a;
示例1
代码实现#xff1a; 题目描述#xff1a;
攀登者喜欢寻找各种地图#xff0c;并且尝试攀登到最高的山峰。
地图表示为一维数组#xff0c;数组的索引代表水平位置…【华为OD】C卷真题 100%通过攀登者1 C/C源码实现
目录
题目描述
示例1
代码实现 题目描述
攀登者喜欢寻找各种地图并且尝试攀登到最高的山峰。
地图表示为一维数组数组的索引代表水平位置数组的高度代表相对海拔高度。其中数组元素0代表地面。
例如[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0], 代表如下图所示的地图地图中有两个山脉位置分别为 1,2,3,4,5和8,9,10,11,12,13最高峰高度分别为 4,3。最高峰位置分别为3,10。
一个山脉可能有多座山峰(高度大于相邻位置的高度或在地图边界且高度大于相邻的高度)。 4--- | | | | 3 3 | | | --- ----- | | | | 2 | | 2 | | 2 | | | | --- | ---- | --- | | | | | | 1 | | 1 1 | | 1 | | 1 | | | | | | --- --- --- --- --- | | | | 0 | | 0 0 | | 0 | | | | --- ------- --- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
登山时会消耗登山者的体力(整数)上山时消耗相邻高度差两倍的体力下坡时消耗相邻高度差一倍的体力平地不消耗体力登山者体力消耗到零时会有生命危险。
例如上图所示的山峰从索引0走到索引1高度差为1需要消耗2X12的体力从索引2高度2走到高度4索引3需要消耗2X24的体力。如果是从索引3走到索引4则消耗1X11的体力。
登山者想要知道一张地图中有多少座山峰 示例1
输入输出示例仅供调试后台判题数据一般不包含示例
输入
[0,1,4,3,1,0,0,1,2,3,1,2,1,0]
输出
3
说明
山峰所在的索引分别为 2,10,12 代码实现
class Solution {
public:/*** 返回地图中山峰的数量* param hill_map int整形vector 地图数据(长度大于1)* return int整形*/int count_peaks(vectorint hill_map) {int count 0;hill_map.push_back(0);hill_map.insert(hill_map.begin(), 0);int n hill_map.size();for (int i 1; i n; i) {if (i 1 n) {if (hill_map[i] hill_map[i 1] hill_map[i] hill_map[i - 1]) {count;}}}return count;}
};