攀登者1 - 华为OD统一考试

OD统一考试

分值: 100分

题解: Java / Python / C++

alt

题目描述

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

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

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

image-20240104103125507

输入描述

输入为一个整型数组,数组长度大于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作为结果。

Java

import java.util.Arrays;
import java.util.Scanner;
/*** @author code5bug*/
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int[] heights = Arrays.stream(scanner.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();int n = heights.length;int cnt = 0;for (int i = 0; i < n; i++) {// 左右海拔均小于自己的海拔时if ((i == 0 || heights[i - 1] < heights[i]) && (i + 1 == n || heights[i] > heights[i + 1])) {cnt++;}}System.out.println(cnt);}
}

Python

heights = list(map(int, input().split(",")))n, cnt = len(heights), 0
for i in range(n):# 左右海拔均小于自己的海拔时if (i == 0 or heights[i - 1] < heights[i]) and (i + 1 == n or heights[i] > heights[i + 1]):cnt += 1
print(cnt)

C++

#include <iostream>
#include <vector>using namespace std;int main() {vector<int> heights;int height;while(cin >> height) {heights.push_back(height);if(cin.peek() == ',') cin.ignore();else break;}int n = heights.size(), cnt = 0;for(int i=0; i<n; i++) {if((i == 0 || heights[i-1] < heights[i]) && (i + 1 == n || heights[i] > heights[i+1])) cnt++;}cout << cnt << endl;return 0;
}

相关练习题

题号题目难易
LeetCode 852852. 山脉数组的峰顶索引中等
LeetCode LCR 069LCR 069. 山脉数组的峰顶索引简单

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/595543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络期末知识点总结

计算机网络概述考点 计算机网络的组成 从组成部分看&#xff1a;一个完整的计算机网络主要由硬件、软件、协议三大部分组成&#xff0c;缺一不可。硬件主要指&#xff1a;主机、通信链路、交换设备和通信设备等&#xff1b;软件主要指&#xff1a;用户使用的各种软件&#xf…

虹科方案|从困境到突破:TigoLeap方案引领数据采集与优化

导读&#xff1a;在数字化工厂和智能制造的时代&#xff0c;数据已经成为优化机器和流程的关键。然而&#xff0c;如何高效地收集和处理这些数据&#xff0c;特别是在开发、部署和生产阶段&#xff0c;仍是企业面临的一大挑战。虹科TigoLeap平台&#xff0c;作为一款引领行业变…

设计模式之原型模式【创造者模式】

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

使用 SpringSecurity 发送POST请求出现 403

问题场景 在使用 SpringSecurity 时对一些访问权限进行了设置, 在用户请求资源时出现了403错误 , 通过检查代码发现请求权限是开放的, 并且切换成 GET 请求也是可以通过, 换成POST 请求就无法通过。 解决方法 在 SpringSecurity 中关闭 CSRF 因为 前端向后台发送 post 请求…

自动化测试用例设计粒度

自动化测试用例的粒度指的是测试用例的细致程度&#xff0c;即每个测试用例检查的功能点的数量和范围。 通常&#xff0c;根据测试用例的粒度&#xff0c;可以被分为3种不同的层次&#xff0c;从更低层次的细粒度到更高层次的粗粒度。 第一种&#xff1a;单元测试 - 细粒度 …

JVM工作原理与实战(五):类的生命周期-加载阶段

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、类的生命周期 1.加载&#xff08;Loading&#xff09; 2.连接&#xff08;Linking&#xff09; 3.初始化&#xff08;Initialization&#xff09; 4.使用&#xff08;Using&…

CEC2017(Python):蜣螂优化算法DBO求解CEC2017

一、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem definitions and evaluation criteria for the CEC2017 special session and competition on single objective real-parameter numer…

Python 介绍和环境准备

一、概述 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的解释性编程语言。 Python 是一种解释型语言&#xff1a; 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 Python 是交互式语言&#xff1a; 这意味着&#xff0c;您可以在一个 Python…

MySQL8.0主从复制实现及遇到的个人问题

文章目录 1、准备两个服务器或者虚拟机2、主库配置3、从库配置4、配置过程中使用到的命令5、遇到的问题 1、准备两个服务器或者虚拟机 这里使用的VM虚拟机的Centos、MySQL版本是8.0.26、使用FinalShell进行远程操作。 2、主库配置 修改MySQL配置文件(/etc/my.cnf) #启用二进…

二叉树链式结构的实现(二叉树的遍历以及各种常用功能函数的实现)

之前也是把堆部分的知识点梳理完毕&#xff08;即二叉树链式顺序的实现&#xff09;&#xff1a;堆的应用&#xff1a;堆排序和TOP-K问题 那么讲完了二叉树链式结构的实现。今天就进入二叉树链式结构的实现&#xff1a; 文章目录 1.准备工作2.二叉树的遍历2.1前序遍历2.2中序遍…

User Friendly大会 | 每日互动刘宇分享AIGC时代的数智营销变革

近日&#xff0c;第十九届暨2023年User Friendly国际用户体验大会在深圳召开。本次大会以“开智启能&#xff0c;体验无界”为主题&#xff0c;邀请了各行业领袖精英齐聚&#xff0c;分享前沿新观点&#xff0c;碰撞体验新思潮。每日互动高级副总裁刘宇作为业内资深专家&#x…

二维码地址门牌管理系统:物业管理的未来趋势

文章目录 前言一、数字化管理与便捷服务二、身份认证与安全保障三、业主便利与贴心服务四、未来发展趋势 前言 在数字化时代&#xff0c;物业管理面临着不断增加的挑战。为了提高管理效率、服务业主&#xff0c;二维码门牌管理系统应运而生。本文将探讨这一新型管理方式&#…

navicat密码解密

https://github.com/HyperSine/how-does-navicat-encrypt-password 获取加密的密码 reg query HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers /s /v host reg query HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers /s /v pwd或者通过导出连接之后查看文…

Unable to connect to Redis server

报错内容&#xff1a; Exception in thread "main" org.redisson.client.RedisConnectionException: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: 175.24.186.230/175.24.186.230…

【实用安装教程】在win系统下制作Mac OS镜像启动U盘

第一步&#xff1a;制作Mac OS系统引导镜像启动U盘 准备一个8G&#xff08;或以上&#xff09;的U盘插入到win系统的电脑上 去下载TransMac(Mac启动盘制作工具)v10.4按照说明安装好 插入准备好的U盘&#xff0c;U盘数据要转移&#xff0c;打开TransMac&#xff0c;右键U盘选…

ssm基于echarts的基金交易网站的设计与实现论文

摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&#xff0c;让整个世界都可以即时通话…

基于Spring Boot+Vue的学生信息管理系统【附源码】

介绍 1)登录模块&#xff1a;用户通过输入可以输入编号、邮箱、手机号和密码来登录系统&#xff0c;如果输入错误会返回登录界面&#xff0c;并提示错误信息&#xff0c;成功登录后用户的登录信息会存储在浏览器中&#xff0c;系统会根据这些信息判断该用户的操作权限。 2)系统…

Windows反调试技术学习

Windows反调试 前言元旦快乐&#xff01;&#xff01;&#xff01;通过 API 调用IsDebuggerPresentCheckRemoteDebuggerPresent&#xff08;NtQueryInformationProcess&#xff09;OutputDebugStringZwSetInformationThread&#xff08;ThreadHideFromDebugger&#xff09; 手动…

【占用网络】VoxFormer 基于视觉的3D语义场景方案 CVPR 2023

前言 本文分享“占用网络”方案中&#xff0c;来自CVPR2023的VoxFormer&#xff0c;它基于视觉实现3D语义场景补全。 使用Deformable Attention从图像数据中&#xff0c;预测三维空间中的体素占用情况和类别信息。 VoxFromer是一个两阶段的框架&#xff1a; 第一个阶段&…

理解UML中的依赖关系

理解UML中的依赖关系 在面向对象的设计中&#xff0c;理解各种类之间的关系对于构建一个清晰、可维护的系统至关重要。UML&#xff08;统一建模语言&#xff09;为我们提供了一种可视化这些关系的方式。今天&#xff0c;我们将深入探讨UML中的依赖关系&#xff08;Dependency&a…