首页 > 编程语言 >华为OD笔试机试 - 攀登者2 (python/c++/java 2024年C卷D卷真题算法)

华为OD笔试机试 - 攀登者2 (python/c++/java 2024年C卷D卷真题算法)

时间:2024-08-15 23:52:05浏览次数:12  
标签:体力 java 真题 地图 高度 消耗 索引 差为 攀登者

华为OD机试(C卷+D卷)2024真题目录(Java & c++ & python)

题目描述

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

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

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

登山时会消耗登山者的体力(整数),

  • 上山时,消耗相邻高度差两倍的体力
  • 下山时,消耗相邻高度差一倍的体力
  • 平地不消耗体力

登山者体力消耗到零时会有生命危险。

例如,上图所示的山峰:

  • 从索引0,走到索引1,高度差为1,需要消耗 2 * 1 = 2 的体力,
  • 从索引2,走到索引3,高度差为2,需要消耗 2 * 2 = 4 的体力。
  • 从索引3,走到索引4,高度差为1,需要消耗 1

标签:体力,java,真题,地图,高度,消耗,索引,差为,攀登者
From: https://blog.csdn.net/hrr397117313/article/details/141192714

相关文章

  • Java异常 小白版
    什么是异常在程序运行时打断正常程序流程的任何不正常的情况称为错误或异常。异常包括用户造成的异常和系统造成的异常。例如:网络连接中断、操作符越界、加载的类找不到异常产生的原因和分类1.异常产生的原因在Java中异常产生,主要是有三种原因:编写程序代码中的错误产生......
  • Java中的四层框架
    一、实体层别名:model层,domain层,entity层用途:用于存放实体类,与数据库中的属性值基本保持一致,实现set和get的方法。二、mapper层别名:dao层用途:对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,主要实现一些增删改查操作,在mybatis中方法主要与xxx.xml内相互一......
  • [Java并发]Synchronized底层原理
    synchronized底层语义原理Java虚拟机中的同步(Synchronization)基于进入和退出管程(Monitor)对象实现。在Java语言中,同步用的最多的地方可能是被synchronized修饰的同步方法。同步方法并不是由monitorenter和monitorexit指令来实现同步的,而是由方法调用指令读取运行时......
  • TypeScript 之 JavaScript文件类型检查
    启用对JavaScript文件的类型检查在TypeScript编译选项compilerOptions全部配置项中,可以通过以下2个属性配置JavaScriptSupport:allowJs是否允许编译JavaScript文件。默认值是false。在默认情况下,TypeScript编译器只处理.ts、.tsx和.d.ts文件,不会编译.js......
  • Java 入门指南:Bean 特殊的Java类
    JavaBeanJavaBean是一种符合特定约定的Java类,用于在Java程序中封装数据和行为。它是一种重要的编程模式,用于简化和统一对象的创建、访问和操作,使得其他Java类可以通过自省(反射)机制来发现和操作这些JavaBean的属性。JavaBean可以用于实现数据封装、数据传输、持久......
  • Java 入门指南:接口(Interface)
    引言在Java编程中,接口(Interface)是一种非常重要的概念,它不仅是面向对象编程(OOP)的基石之一,也是实现高内聚、低耦合设计原则的关键工具。接口定义了一组方法,但不提供这些方法的实现细节,而是由实现接口的类来具体实现。这种机制使得Java程序更加灵活、易于扩展和维护。定义接......
  • java方法
    Java方法System.out.println()方法是语句的集合原则:一个方法只完成一个功能,利于我门后期的拓展定义类似于其他语言的函数,用来完成特定功能的代码片段packagecom.yang.Method;publicclassDemo0{//main方法publicstaticvoidmain(String[]args){......
  • java中运算符的详细知识点
    算数运算符a++先赋值再加1++a先加1在赋值--的道理是一样的赋值运算符1.=+=-=*=/=%=当=两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则支持连续赋值=+=-=*=/=%=不会改变基础类型测试一下:比较运算符运算结果为布尔类型==!=适......
  • JavaScript 中,`'10' < '1'` 的结果为 `false`,原因
    在JavaScript中,'10'<'1'的结果为false,这是因为JavaScript在进行比较操作时,会将字符串按照字符编码进行比较,而不是将它们转换为数字。字符编码比较:字符串'10'的第一个字符是'1',而字符串'1'的第一个字符也是'1'。由于两个字符串的第一个字符相同,所以JavaScript......
  • java网站重建绕密常用技巧
    在进行网站分析时的一大重点就是如何登录到管理后台,这就需要我们去绕过/获取管理员的密码,在php、nodejs等站点中就很简单,我们只需要找到目标逻辑所在的代码,直接修改代码就可以实现目的。但是当我们遇到java类站点时,没有办法很轻松地修改代码,只能去分析密文的算法,从而自己生成对应......