华为od机试真题:攀登者1(Python)

2024华为OD机试(C卷+D卷)最新题库【超值优惠】Java/Python/C++合集

2024华为OD机试

题目描述

攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。

地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素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。

一个山脉可能有多座山峰(高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。

攀登者1

输入描述

输入为一个整型数组,数组长度大于1。

输出描述

输出地图中山峰的数量。

示例1

输入:
0,1,4,3,1,0,0,1,2,3,1,2,1,0

输出:
3

说明:
山峰所在索引分别为3,10,12

题解

简单模拟题。

解题思路

  1. 使用一个计数器cnt记录符合条件的山峰数量。
  2. 遍历数组,对于每个位置,判断是否满足山峰条件,即左右两侧的海拔均小于自身。
  3. 如果满足条件,则增加计数器cnt
  4. 最终返回cnt作为结果。

Python

# 返回地图中山峰的数量
# @param hill_map int整型一维数组 地图数组(长度大于1)
# @return int整型
#
class Solution:
    def count_peaks(self , hill_map ):
        n, cnt = len(hill_map), 0
        for i in range(n):
            # 左右海拔均小于自己的海拔时
            if (i == 0 or hill_map[i - 1] < hill_map[i]) and (i + 1 == n or hill_map[i] > hill_map[i + 1]):
                cnt += 1
        return cnt

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

#华为od##华为od题库##华为##面经##秋招#
全部评论

相关推荐

点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务