如何在华为OD机试中获得满分?Java实现【区块链文件转储系统】一文详解!

news2024/10/5 19:19:23

请添加图片描述

✅创作者:陈书予
🎉个人主页:陈书予的个人主页
🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区
🌟专栏地址: Java华为OD机试真题(2022&2023)

文章目录

  • 1. 题目描述
    • 2. 输入描述
    • 3. 输出描述
    • 4. Java算法源码
    • 5. 测试
    • 6.解题思路

1. 题目描述

区块链底层存储是一个链式文件系统,由顺序的N个文件组成,每个文件的大小不一,依次为F1,F2…Fn

随着时间的推移,所占存储会越来越大。

云平台考虑将区块链按文件转储到廉价的SATA盘,只有连续的区块链文件才能转储到SATA盘上,且转储的文件之和不能超过SATA盘的容量。

假设每块SATA盘容量为M,求能转储的最大连续文件大小之和。

2. 输入描述

第一行为SATA盘容量M,1000<=M<=1000000

第二行为区块链文件大小序列F1,F2…Fn。其中 1<=n<=100000, 1<=Fi<=500

3. 输出描述

求能转储的最大连续文件大小之和

4. Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    // 每块SATA盘容量
    int M = Integer.valueOf(sc.nextLine());
    // 区块链文件大小序列
    int[] arr = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();

    int n = arr.length;
    int l = 0;
    int r = 0;
    int curr = 0;
    int ret = 0;
    while (r < n) {
        curr += arr[r];

        if (curr <= M) {
            ret = Math.max(ret, curr);
            r ++;
        } else {
            curr -= arr[r];
            curr -= arr[l];
            l ++;
        }
    }
    System.out.println(ret);
}

5. 测试

在这里插入图片描述

6.解题思路

在这里插入图片描述

  1. 读取输入的SATA盘容量M和区块链文件大小序列arr。
  2. 定义变量n为文件序列arr的长度,l和r分别表示连续文件的左右边界,curr表示当前连续文件大小之和,ret表示能转储的最大连续文件大小之和,初始值均为0。
  3. 使用双指针法遍历文件序列arr,通过移动指针来找到能转储的最大连续文件大小之和。
    • 将当前文件大小加到curr上。
    • 如果curr小于等于M,更新ret为curr和ret中的较大值,右指针r向右移动一位。
    • 如果curr大于M,说明当前连续文件大小之和超过了SATA盘容量,需要调整边界来找到新的连续文件。
      • 将右指针r指向的文件大小从curr中减去。
      • 将左指针l指向的文件大小从curr中减去。
      • 左指针l向右移动一位。
  4. 输出能转储的最大连续文件大小之和ret。

在这里插入图片描述

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

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

相关文章

完全详解权限系统设计方案

1 为什么需要权限管理 日常工作中权限的问题时时刻刻伴随着我们&#xff0c;程序员新入职一家公司需要找人开通各种权限&#xff0c;比如网络连接的权限、编码下载提交的权限、监控平台登录的权限、运营平台查数据的权限等等。 在很多时候我们会觉得这么多繁杂的申请给工作带…

【JavaSE】Java基础语法(十五):继承

文章目录 1. 继承的实现2. 继承的好处和弊端3. Java中继承的特点4. 继承中的成员访问特点5. super6. 继承中构造方法的访问特点7. 继承中成员方法的访问特点8. super内存图9. 方法重写10. 权限修饰符 1. 继承的实现 继承的概念 继承是面向对象三大特征之一&#xff0c;可以使得…

G0第23章 :gorm介绍、模型定义、连接数据库

01 GORM介绍 https://gorm.io/zh_CN/docs/ gorm是一个使用Go语言编写的ORM框架。它文档齐全&#xff0c;对开发者友好&#xff0c;支持主流数据库。 特性 全功能 ORM关联 (Has One&#xff0c;Has Many&#xff0c;Belongs To&#xff0c;Many To Many&#xff0c;多态&…

SentinelResource配置

1.SentinelResource配置&#xff08;上&#xff09; 1.1.按资源名称限流 后续处理 1.1.1.启动Nacos成功 1.1.2.启动Sentinel成功 1.1.3.添加控制器 import com.alibaba.csp.sentinel.annotation.SentinelResource; import com.alibaba.csp.sentinel.slots.block.BlockExc…

2023-05-26:golang关于垃圾回收和析构函数的选择题,多数人会选错。

2023-05-26&#xff1a;golang关于垃圾回收和析构的选择题&#xff0c;代码如下&#xff1a; package mainimport ("fmt""runtime""time" )type ListNode struct {Val intNext *ListNode }func main0() {a : &ListNode{Val: 1}b : &Li…

使用Jmeter进行http接口性能测试

在进行网页或应用程序后台接口开发时&#xff0c;一般要及时测试开发的接口能否正确接收和返回数据&#xff0c;对于单次测试&#xff0c;Postman插件是个不错的Http请求模拟工具。 但是Postman只能模拟单客户端的单次请求&#xff0c;而对于模拟多用户并发等性能测试&#xf…

Linux入门笔记

Linux 1.概述 2.命令 1.常用命令 新建文件 touch 新建目录 mkdir Linux命令格式⭐️ 选项可以对命令具体控制 2.文件目录操作 1.ls ll命令用的很多 显示出非隐藏文件的详细信息 2.cd ~表示当前用户目录&#xff0c;如root用户目录 \表示根目录 3.查看命令 1.cat查看命令 -n…

【Python爬虫项目实战四】Chatgpt国内接口分享第一期

目录 🍇前言接口一接口二(免费学习测试 wuguokai)接口三(AI文本工具站)🍇前言 前几次分享的py接口,由于不经常维护导致你们下载的时候已经失效了,为了回馈粉丝,昨晚我想实在不行我就弄个接口出来吧,我自己维护,有问题咱们就在评论下方留言,我及时做更新处理就可…

树形结构的表设计与Java接口实现

文章目录 1、开发需求中的树形结构2、表结构设计3、接口实现代码模型类与接口定义Mapper层开发 1、开发需求中的树形结构 树形结构在日常开发中很常见&#xff0c;如&#xff1a; 再比如&#xff1a; 还有&#xff1a; 2、表结构设计 这种树形结构&#xff0c;其 核心字段为p…

【自制C++深度学习推理框架】计算图的设计思路

计算图的设计思路 什么是计算图 在深度学习推理框架中&#xff0c;计算图是一种数据结构&#xff0c;它由算子节点和数据节点组成&#xff0c;在该图中前向传播时数据从输入节点开始流动&#xff0c;经过一层层的计算后输出到输出节点&#xff0c;表示深度学习模型的计算过程…

Unity Shader variants (shader 变体)

官方地址 https://docs.unity3d.com/cn/2022.2/Manual/SL-MultipleProgramVariants.html 教程可以看这里 https://www.jianshu.com/p/48ad75f0b4b9 https://www.jianshu.com/p/3e6b84317097 变种用我自己的理解就是 能用程序控制的shader 举个例子 这里声明了 a b c d 四个变…

数据结构与算法03:栈

目录 什么是栈&#xff1f; 栈在函数调用中的应用 栈的应用&#xff1a;如何实现浏览器的前进和后退功能&#xff1f; 每日一练&#xff1a;左右括号匹配 什么是栈&#xff1f; 简单地说&#xff0c;先进后出&#xff0c;后进先出的数据结构就是栈&#xff0c;可以理解为一…

面试题:什么是 TCP/IP?

目录标题 什么是 TCP/IP?1) 网络接口层:2) 网络层:3) 传输层:4) 应用层: 2.数据包3.网络接口层4.网络层1) IP:2)地址解析协议 ARP3)子网 5 传输层1&#xff09;UDP&#xff1a;2&#xff09;TCP&#xff1a; 6 应用层运行在TCP协议上的协议&#xff1a;运行在UDP协议上的协议&…

大模型即将改变世界,百度先上牌桌

“未来&#xff0c;所有的应用都将基于大模型来开发&#xff0c;每一个行业都应该有属于自己的大模型&#xff0c;大模型会深度融合到实体经济当中去。” 作者|思杭 斗斗 编辑|皮爷 出品|产业家 “大模型即将改变世界。”5月26日&#xff0c;李彦宏在中关村论坛说道。 而…

ESP32CAM开发板记录

忘记过去&#xff0c;超越自己 ❤️ 博客主页 单片机菜鸟哥&#xff0c;一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-05-26 ❤️❤️ 本篇更新记录 2023-05-26 ❤️&#x1f389; 欢迎关注 &#x1f50e;点赞 &#x1f44d;收藏 ⭐️留言&#x1f4dd;&#x1f64…

【问题小记】解决Linux下php-fpm进程过多耗尽内存问题

最近一段时间&#xff0c;发现经常性的服务器内存耗尽&#xff0c;导致mysql服务down掉&#xff0c;一开始以为是mysql跑的太久占用较多内存&#xff0c;后来认真排查了一下原来是是PHP-FPM进程过多导致的。 今天一看内存又达到了82%&#xff0c;预计不会太久服务又会挂掉&…

深入探索: 对象构造的隐藏功能与技巧

&#x1f9d1;‍&#x1f4bb;CSDN主页&#xff1a;夏志121的主页 &#x1f4cb;专栏地址&#xff1a;Java基础进阶核心技术专栏 目录 &#x1f383; 一、重载 &#x1f384; 二、默认字段初始化 &#x1f386; 三、无参数的构造器 ✨ 四、显式字段初始化 &#x1f38a; 五…

Vue(路由插件)

一、介绍路由 1. 路由就是一组key-value的对关系&#xff0c;多个路由需要经过路由器进行管理 2. 主要应用在SPA&#xff08;单页面应用&#xff09; 在一个页面展示功能之间的跳转 特点&#xff1a; 当跳转时候不进行页面刷新路径随着变化展示区变化但是不开启新的页签 …

总结丨SGAT单基因关联分析工具,一文上手使用

SGAT是一个免费开源的单基因分析工具&#xff0c;基于Linux系统实现自动化批量处理&#xff0c;能够快速准确的完成单基因和表型的关联分析&#xff0c;只需要输入基因型和表型原始数据&#xff0c;即可计算出显著关联的SNP位点&#xff0c;并自动生成结果报告。 前段时间陆续的…

YOLOv5白皮书-第Y4周:common.py文件解读

目录 0.导入需要的包和基本配置1.基本组件1.1 autopad1.2 Conv1.3 Focus1.4 Bottleneck1.5 BottleneckCSP1.6 C31.7 SPP1.8 Concat1.9 Contract、Expand 2.重要类2.1 非极大值抑制&#xff08;NMS&#xff09;2.2 AutoShape2.3 Detections2.4 Classify &#x1f368; 本文为&am…