2023华为OD机试真题-跳格子2JAVA、Python、C++)

2023-10-30

题目描述:

小明和朋友玩跳格子游戏, 有 n 个连续格子组成的圆圈,每个格子有不同的分数,小朋友可以选择从任意格子起跳,但是不能跳连续的格子,不能回头跳,也不能超过一圈 ;

给定一个代表每个格子得分的非负整数数组,计算能够得到的最高分数。

输入描述:

给定一个数例,第一个格子和最后一个格子收尾相连,如:2 3 2

输出描述:

输出能够得到的最高分,如:3

补充说明:

1 <= nums.length <= 100 

0 <= nums[i] <= 1000

 收起

示例1

输入:

2 3 2
输出:

3
说明:

只能跳3这个格子,因为第一个格子和第三个格子收尾相连

示例2

输入:

1 2 3 1
输出:

4
说明:

1+3=4
 

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] a = new int[100];
        int n = 0;
        while(sc.hasNextInt()) {
            a[n++] = sc.nextInt();
        }
        int[] dp = new int[n];
        int ans = 0;
        for(int i = 0; i < n- 1; i++) {
            if(i >= 2) {
                dp[i] = Math.max(dp[i- 1], dp[i - 2] + a[i]);
            } else {
                dp[i] = a[i];
                if(i > 0) dp[i] = Math.max(dp[i], dp[i-1]);
            }
            if(dp[i] > ans) {
                ans = dp[i];
            }
        }
        int[] f = new int[n];
        for(int i = 1; i < n; i++) {
            if(i >= 2) {
                f[i] = Math.max(f[i- 1], f[i - 2] + a[i]);
            } else {
                f[i] = a[i];
                if(i > 0) f[i] = Math.max(f[i], f[i-1]);
            }
            if(f[i] > ans) {
                ans = f[i];
            }
        }
        System.out.println(ans);
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023华为OD机试真题-跳格子2JAVA、Python、C++) 的相关文章

  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • 如果 PyPy 快 6.3 倍,为什么我不应该使用 PyPy 而不是 CPython?

    我已经听到很多关于PyPy http en wikipedia org wiki PyPy项目 他们声称它比现有技术快 6 3 倍CPython http en wikipedia org wiki CPython口译员开启他们的网站 ht
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • L2-001 紧急救援 (25 分)

    题目 题目链接 题解 最短路 扩展 算是朴素Dijkstra模板吧 Dijkstra算法 额外加上记录路径 记录到达此处的最短距离 记录以最短距离到达此处的最多人数 更新方式 假设未确定距离的点集中的点t距离已确定距离的点集最近 以t对其他
  • Redis 网络模型

    redis网络模型背景 1 进程分为用户空间和内核空间 用户空间和内核空间共同目标是对系统资源的访问 为了提高IO效率 给用户空间和内核空间都加入了缓存 访问的流程为读写两部分 读 用户空间访问内核空间的缓存产看是否存在资源 若没有内核空间
  • log4j自定类的日志信息打印到指定文件

    需求 现在有需要把每月的定时任务的日志信息 INFO级别的 打印到自定义的emailAccount log文件中 这个跑批类日志信息需要跟其他文件中INFO区分开来 也就是说emailAccount log文件不能有别的文件的INFO级别的
  • 机器学习——Dropout原理介绍

    一 引言 因为在机器学习的一些模型中 如果模型的参数太多 而训练样本又太少的话 这样训练出来的模型很容易产生过拟合现象 在训练bp网络时经常遇到的一个问题 过拟合指的是模型在训练数据上损失函数比较小 预测准确率较高 如果通过画图来表示的话
  • JavaScript如何设置hover属性?

    hover就是选择鼠标指针浮动在其上的元素 并可以设置其样式的 但是在DOM操作中 我们并不可以直接设置hover属性 而要想有这个效果我们可以直接给元素注册一个onmouseover 鼠标进入 和onmouseout 鼠标离开 事件 然后
  • 算法-树结构

    算法 树结构 一 概述 一维结构 数组 链表 跳表 栈 队列等 这些结构都是 线性存储结构 二维结构 树 图 是一种非线性存储结构 存储的是具有 一对多 关系的数据元素的集合 树 Tree 结点 使用树结构存储的每一个数据元素都被称为 结点
  • ubuntu下安装NerdTree和动态语法检测工具ALE

    1 文件浏览插件NerdTree的安装 1 NerdTree的安装 在 vimrc文件中添加 Plugin scrooloose nerdtree 然后重启Vim 输入并运行命令 PluginInstall 完成安装 2 配置NerdTre
  • 微信小程序之摇骰子源代码分享

    通过这个案例你可以知道 按钮事件 切换image图片 陀螺仪事件 与按钮事件逻辑相同 啥者不用说了 直接上代码 https github com lzc alioo weiapp2 备注 图片是网上百度的 不够好 有小伙伴有好图片替换的话欢
  • springboot+mina框架服务端的实现(一) ------ pom依赖、mina配置类、自定义协议以及编解码器的实现

    来吧 一步一步搭建mina服务端 原理往后再说 参考博客 矢落叶 博客 首先利用springboot的插件新建一个maven项目 一 pom xml 所需依赖 首先加入mina核心依赖
  • 【教程】在VSCode中使用码云进行代码管理

    教程 在VSCode中使用码云进行代码管理 前言 本教程核心内容 本文主要是整合了网上教程 从Git安装开始 配置关联本地仓库到码云 最终用上VScode这个流程 非常基础和简单 照着操作就行了 起因 平时常写python脚本 原先用Sub
  • 因果推断总结

    目录 因果关系的三个层级 因果推断的三个假设 因果性的常见谬误 因果推断偏差原因 因果推断的两种流派 因果推断前提假设 因果推断的方法与实操流程 因果关系的三个层级 因果推断是基于统计学方法刻画变量之间的因果关系 因果关系存在三个层级 第一
  • Java堆,方法区,直接内存

    Java的内存区中 为线程共有的有三部分 Java堆 方法区 直接内存 其中方法区中包含运行时常量池 直接内存并不属于Java的常规内存区 1 Java堆是被所有线程共享的一块内存 在启动虚拟机时创建 通常 所有的对象实例及数组都要在堆上分
  • [pytorch报错]ValueError: num_samples should be a positive integer value, but got num_samples=0

    项目场景 在mmeg中运行自定义数据集报错情况 问题描述 运行代码后 mmSeg提示说 2021 12 08 18 39 33 991 mmseg INFO Loaded 0 images 说明模型没有加载数据 数据地址出错 报错信息 Fi
  • 轮胎的魔术公式(Magic Fomula)模型

    本篇结合Adams中的TR rear pac89 tir文件 介绍一下魔术公式的基本知识 使用魔术公式的轮胎模型主要有Pacejka 89 Pacejka 94 MF Tyre MF Swift四种 1 Pacejka 89和 94轮胎模型
  • java常用框架总结

    今天想看看现在常用的框架有哪些 发现网上文章不多决定根据自己的理解写一篇文章 如有错误希望大家包涵 1 java的5大框架 springboot都不说了 网上资料很多 2 缓存工具 Ehcache redis 3 消息队列中间工具 Rabb
  • 层次聚类AgglomerativeClustering()树形图可视化与children_属性解析

    层次聚类函数AgglomerativeClustering 我们主要来讲解层次聚类的可视化画图和层次聚类后返回的children 属性 children 属性的理解需要借助可视化图形 1 层次聚类的可视化画图 1 1步骤 step1 使用
  • Linux中修改jar包中的文件内容

    1 命令行中输入vim jar包路径 2 回车 打开jar包中的文件目录 并定位到要修改的文件位置 3 回车 打开文件内容进行修改 4 修改后 Ctrl wq保存退出上步 再次Ctrl q退出 完成修改
  • 计算机二级页表页框大小,两级页表

    本文是在基本分页存储管理的基础上对分页管理的优化 在上篇文章中说到 操作系统会为每个进程建立一张页表 实现页号和内存块号之间的对应关系 本文从单级页表存在的问题引出两级页表 以及两级页表如何实现地址的变换 1单级页表存在的问题 假设某计算机
  • 两层和三层的讨论

    下面的东西都是转贴的 包括那个声明 都跟我没关系 google搜出来的 在这之前我的确觉得DataSetProvider ClientDataSet和我理解中的三层有点差别 看完这些讨论 我的结论是 DataSetProvider Clie
  • 2023华为OD机试真题-跳格子2JAVA、Python、C++)

    题目描述 小明和朋友玩跳格子游戏 有 n 个连续格子组成的圆圈 每个格子有不同的分数 小朋友可以选择从任意格子起跳 但是不能跳连续的格子 不能回头跳 也不能超过一圈 给定一个代表每个格子得分的非负整数数组 计算能够得到的最高分数 输入描述