【2024最新华为OD-C/D卷试题汇总】[支持在线评测] LYA的登山之旅01(100分)- 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

📎在线评测链接

https://app5938.acapp.acwing.com.cn/contest/2/problem/OD1081

🌍 评测功能需要 ⇒ 订阅专栏 ⇐ 后私信联系清隆解锁~

🍓OJ题目截图

在这里插入图片描述

文章目录

    • 📎在线评测链接
    • 🍓OJ题目截图
    • 🍓 LYA的登山之旅01
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 样例解释
      • 数据范围
      • 题解
      • 参考代码

🍓 LYA的登山之旅01

题目描述

LYA喜欢登山,她经常在地图上寻找各种山脉。地图可以表示为一个一维数组,数组的索引代表水平位置,数组的值代表该位置的海拔高度。其中,数组元素 0 0 0 代表地面。

例如,数组 a r r arr arr 表示如下图所示的地图,地图中有两个山脉,位置分别为 1 , 2 , 3 , 4 , 5 1,2,3,4,5 1,2,3,4,5 8 , 9 , 10 , 11 , 12 , 13 8,9,10,11,12,13 8,9,10,11,12,13,最高峰海拔分别为 4 4 4 3 3 3,最高峰位置分别为 3 3 3 10 10 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

LYA想知道一张地图中有多少个山峰,你能帮助她计算出来吗?

输入格式

输入一行,为一个表示地图的数组,数组元素之间用逗号分隔,数组两端有方括号。

输出格式

输出一个整数,表示地图中山峰的数量。

样例输入

[0,1,4,3,1,0,0,1,2,3,1,2,1,0]

样例输出

3

样例解释

山峰所在的索引分别为 2 2 2 10 10 10 12 12 12

数据范围

1 ≤ 1 \leq 1 数组长度 ≤ 1 0 5 \leq 10^5 105
0 ≤ 0 \leq 0 数组元素 ≤ 1 0 9 \leq 10^9 109

题解

我们可以遍历数组,对于每个位置,判断它是否是山峰。一个位置是山峰,当且仅当它的海拔高度大于左右相邻位置的海拔高度(如果存在的话)。需要特别注意地图边界的处理。

参考代码

  • Python
heights = list(map(int, input()[1:-1].split(',')))
n = len(heights)
ans = 0
for i in range(n):left = i == 0 or heights[i] > heights[i - 1]right = i == n - 1 or heights[i] > heights[i + 1]if left and right:ans += 1
print(ans)
  • Java
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.nextLine();s = s.substring(1, s.length() - 1);String[] strs = s.split(",");int[] w = new int[strs.length];for (int i = 0; i < strs.length; i++) {w[i] = Integer.parseInt(strs[i].trim());}int n = w.length;int ans = 0;for (int i = 0; i < n; i++) {boolean left = i == 0 || w[i] > w[i - 1];boolean right = i == n - 1 || w[i] > w[i + 1];if (left && right) {ans++;}}System.out.println(ans);}
}
  • Cpp
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;int main() {string input;getline(cin, input);input = input.substr(1, input.length() - 2);stringstream ss(input);string item;vector<int> heights;while (getline(ss, item, ',')) {heights.push_back(stoi(item));}int n = heights.size();int ans = 0;for (int i = 0; i < n; i++) {bool left = i == 0 || heights[i] > heights[i - 1];bool right = i == n - 1 || heights[i] > heights[i + 1];if (left && right) {ans++;}}cout << ans << endl;return 0;
}

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

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

相关文章

如何在 HTML 中实现响应式设计以适应不同设备的屏幕尺寸?

要在HTML中实现响应式设计以适应不同设备的屏幕尺寸&#xff0c;可以使用CSS媒体查询和流动布局。 以下是实现响应式设计的一些关键步骤&#xff1a; 使用CSS媒体查询&#xff1a;CSS媒体查询允许根据屏幕尺寸和设备特性应用不同的CSS样式。通过在CSS中使用media规则&#xf…

第四十一章 使用 二进制 SOAP 格式

文章目录 第四十一章 使用 二进制 SOAP 格式介绍扩展 Web 服务的 WSDL 第四十一章 使用 二进制 SOAP 格式 数据平台 SOAP 支持提供了可选的专有二进制 SOAP 格式&#xff0c;当发送和接收大型 SOAP 消息并希望最小化消息大小时&#xff0c;该格式非常有用。 Web 服务可以接收…

js文件的执行和变量初始化缓存

js文件和变量初始化 全局变量举例js文件加载 全局变量举例 import * as turf from "turf/turf"; import earcut from "earcut"; import * as THREE from "three"; import { TextGeometry } from "three/addons/geometries/TextGeometry.js…

《梦醒蝶飞:释放Excel函数与公式的力量》6.4 TODAY函数

第四节&#xff1a;6.4 TODAY函数 1&#xff09;TODAY函数概述 TODAY函数是Excel中一个非常有用的内置函数&#xff0c;它返回当前的日期。与NOW函数不同&#xff0c;TODAY函数仅返回日期部分&#xff0c;时间部分默认为午夜&#xff08;0:00&#xff09;。 2&#xff09;函…

[数据质量]手动实现 阿里云DataWorks 的数据质量监控告警功能

目录 手动实现 DataWorks 的数据质量监控告警功能1. 简介:2. 数据表准备2.1 tmp_monitor_tbl_info (数据监控信息表)2.2 tmp_monitor_rule_info (数据质量监控规则表)2.3 tmp_monitor_tbl_info_log_di (数据监控信息记录表) 3. 程序开发3.1 数据检查程序3.2 告警信息推送程序3.…

Jenkins教程-10-发送飞书测试报告通知

上一小节我们学习了发送企业微信测试报告通知的方法&#xff0c;本小节我们讲解一下发送飞书测试报告通知的方法。 1、自动化用例执行完后&#xff0c;使用pytest_terminal_summary钩子函数收集测试结果&#xff0c;存入本地status.txt文件中&#xff0c;供Jenkins调用 conft…

MyBatis(9)MyBatis 的一级缓存和二级缓存的区别

MyBatis 提供了两级缓存机制&#xff1a;一级缓存&#xff08;Session级别&#xff09;和二级缓存&#xff08;全局级别&#xff09;&#xff0c;以提高应用的性能通过减少数据库的查询次数。 一级缓存&#xff08;Session级别&#xff09; 一级缓存是基于 SQL 会话&#xff…

优化 C# 和 .NET Core Web API 中的 LINQ 查询

LINQ&#xff08;语言集成查询&#xff09;是 C# 中的一项强大功能&#xff0c;允许开发人员以可读且简洁的方式查询和操作数据。但是&#xff0c;LINQ 的使用效率低下可能会导致性能瓶颈&#xff0c;尤其是在处理 .NET Core Web API 中的大型数据集时。优化 LINQ 查询对于维护…

嵌入式 Linux 设备刷系统具体组成

嵌入式 Linux 设备刷系统具体组成 1 介绍1.1 概述1.2 嵌入式 Linux 的组成1.3 U-Boot1.4 Linux 内核1.5 设备树1.6 根文件系统 参考 1 介绍 1.1 概述 一个完整的 linux 系统&#xff0c;通常包含了 U-Boot、kernel、设备树以及根文件系统。 1.2 嵌入式 Linux 的组成 1.3 U-…

Java热门技术点总结:Lambda表达式与Stream API

第一部分&#xff1a;Lambda表达式 1. 简介 Lambda表达式是Java 8引入的一个非常重要的特性&#xff0c;它提供了一种简洁、灵活的函数式编程方式。Lambda表达式允许我们将函数作为参数传递&#xff0c;极大的简化了代码的编写。 2. 基本语法 Lambda表达式的基本语法如下&a…

教程:Spring Boot中集成Elasticsearch的步骤

教程&#xff1a;Spring Boot中集成Elasticsearch的步骤 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在当今大数据时代&#xff0c;搜索功能对于许多应用程…

注解详解系列 - @RestClientTest:Rest客户端测试

注解简介 在今天的注解详解系列中&#xff0c;我们将探讨RestClientTest注解。RestClientTest是Spring Boot提供的一个注解&#xff0c;用于简化Rest客户端的测试。通过RestClientTest注解&#xff0c;可以轻松地对使用RestTemplate或WebClient的代码进行单元测试&#xff0c;…

Java基于jjwt操作jwt

之前讲解了jwt的相关知识&#xff0c;有不了解的&#xff0c;可以查看相关的文章JWT简介-CSDN博客&#xff0c;本节不再介绍&#xff0c;主要讲解有关java中如何通过jjwt库产生jwt以及解析jwt的相关操作。 添加maven依赖 <dependency><groupId>io.jsonwebtoken&l…

sam_out 目标检测的应用

缺点参考地址训练验证模型解析 缺点 词表太大量化才可 参考地址 https://aistudio.baidu.com/projectdetail/8103098 训练验证 import os from glob import glob import cv2 import paddle import faiss from out_yolo_model import GPT as GPT13 import pandas as pd imp…

目标检测之YoloV1

一、预测阶段&#xff08;前向推断&#xff09; 在预测阶段Yolo就相当于一个黑箱子&#xff0c;输入的是448*448*3的图像&#xff0c;输出是7*7*30的张量&#xff0c;包含了所有预测框的坐标、置信度和类别 为什么是7*7*30呢&#xff1f; --将输入图像划分成s*s个grid cell&a…

【多线程】如何解决线程安全问题?

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. synchronized 关键字1.1 锁是什么1.2 如何加锁1.3 synchronized 修饰方法1) 修饰普通成员方法2) 修饰静态…

LeetCode //Bash - 192. Word Frequency

192. Word Frequency Write a bash script to calculate the frequency of each word in a text file words.txt. For simplicity sake, you may assume: words.txt contains only lowercase characters and space ’ ’ characters.Each word must consist of lowercase ch…

【系统架构设计师】七、信息安全技术基础知识(访问控制技术|抗攻击技术|计算机系统安全保护能力等级)

目录 一、访问控制技术 二、信息安全的抗攻击技术 2.1 分布式拒绝服务DDoS与防御 2.3 ARP欺骗攻击与防御 2.4 DNS欺骗与防御 2.5 IP欺骗与防御 2.6 端口扫描&#xff08;Port Scanning&#xff09; 2.7 强化TCP/IP堆栈以抵御拒绝服务攻击 2.8 系统漏洞扫描 三、信息安…

基于weixin小程序乡村旅游系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;商家管理&#xff0c;旅游景点管理&#xff0c;景点类型管理&#xff0c;景点路线管理&#xff0c;系统管理 商家帐号账号功能包括&#xff1a;系统首页&#xff0c;旅游景点管理&…

ArchLinux挑战安装(ZFS、Wayland、KDE、xero)

目录 0. 前言&#xff1a; 1. 先期准备 1.1 引导ArchLinx光盘。 1.2 禁用 reflector 服务 1.3 防止网卡禁用 1.4 wifi设置 1.5 测试网络是否连接 1.6 更新系统时间 1.7 更换源 1.8 下载ZFS模块 1.9 加载ZFS模块 2. 磁盘处理 2.1 查看磁盘分区 2.2 清除与整个磁盘…