2024 ccfcsp认证打卡 2021 12 01 序列查询

2021 12-1 序列查询

  • 题解1
  • 题解2
  • 区别
    • 第一种算法:
    • 第二种算法:

在这里插入图片描述
在这里插入图片描述

题解1

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 输入n表示商品数目,N表示总数int n = sc.nextInt();int N = sc.nextInt();int[] A = new int[n + 1]; // 存储价格的数组,注意要多一个位置用于存储0// 输入n个商品的价格for (int i = 1; i <= n; i++) {A[i] = sc.nextInt();}int sum = 0; // 存储 sum(A) 的值int curMax = 0; // 当前最大值的下标,初始化为0// 遍历 [0, N) 的范围for (int x = 0; x < N; x++) {// 找到小于等于x的最大值的下标while (curMax + 1 <= n && A[curMax + 1] <= x) {curMax++;}sum += curMax; // 将当前最大值的下标累加到sum中}System.out.println(sum); // 输出结果sc.close();}
}

题解2

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 输入n表示商品数目,N表示总数int n = sc.nextInt();int N = sc.nextInt();int[] arr = new int[n + 1]; // 存储价格的数组,注意要多一个位置用于存储0// 输入n个商品的价格for (int i = 1; i <= n; i++) {arr[i] = sc.nextInt();}int sum = 0; // 存储 sum(A) 的值int temp = 0; // 暂存当前最大值的下标// 遍历 [0, N) 的范围for (int i = 0; i < N; i++) {if (i < arr[n]) {// 如果i小于数组中的最大值,且等于arr[temp+1]时,temp加1if (i == arr[temp + 1]) {temp++;}sum += temp; // 将temp累加到sum中} else {// 如果i大于等于数组中的最大值,计算剩余的值并加到sum中,跳出循环sum += (N - arr[n]) * (temp + 1);break;}}System.out.println(sum); // 输出结果sc.close();}
}

区别

第一种算法:

使用了差分数组的思想,通过差分数组记录了每个时间段内的能出行的个数。
遍历每个出行计划,将每个计划对应的时间段进行标记,标记出行计划所需的时间段。
根据差分数组的性质,对于每个时间点,差分数组记录了该时间点前面的出行计划所覆盖的时间段个数,从而实现了查询时间点时的高效计算。

第二种算法:

在对每个时间点进行查询时,遍历了商品价格的数组,根据当前时间点和商品价格的关系来计算sum。
在遍历过程中,记录了当前最大值的下标temp,并根据temp来确定sum的值,即根据每个时间点对应的商品价格来确定sum的值。
总的来说,第一种算法更加直接且高效,通过差分数组记录时间段的出行计划个数,从而实现了O(1)时间复杂度内的查询。而第二种算法则需要对每个时间点都遍历整个商品价格数组来计算sum,效率较低。

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

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

相关文章

ChatGPT如何升级为GPT-4在国内

通过 WildCard 可以把ChatGPT升级为GPT-4 地址 1: 2155 Bailey Hill Rd 城市: Eugene 邮编: 97405 州: Oregon ChatGPT Plus/Team 一键升级&#xff0c;几分钟即可自动升级到 ChatGPT Plus。 选择我的邮箱账号符合要求 复制这个页面的链接即可 复制上面的link 到请在…

Harbor部署

Harbor部署 下载和安装 github下载地址&#xff1a;https://github.com/goharbor/harbor/releases 解压和配置 # 解压tgz包 tar -zxvf harbor-offline-installer-v2.10.1.tgz # 进入目录后进行复制配置文件 cd harbor/ # 创建一个配置文件 cp harbor.yml.tmpl harbor.yml …

Oracle利用BBED恢复崩溃实例(ORA-01092,ORA-00704,ORA-01578)

BBED修复数据损坏引起的数据库崩溃&#xff08;ORA-01092,ORA-00704,ORA-01578&#xff09;(2021年某苏州国企的案例&#xff09; 1.Symptom 用户一个边缘系统出现数据文件损坏&#xff0c;且没有备份&#xff0c;数据库无法启动 报错如下&#xff0c;发现是oracle bootstra…

pnpm、monorepo分包管理、多包管理、npm、vite、前端工程化、保姆级教程

浅尝pnpm monorepo 多包管理方案 &#x1f4a1;tips: 创建pnpm monorope多包管理框架流程 初始化 mkdir taurus & cd taurus pnpm init创建基础文件 创建文件pnpm-workspace.yaml packages:- packages/**创建文件夹packages/ -packages/ -package.json -pnpm-workspace…

Net8 ABP VNext完美集成FreeSql、SqlSugar,实现聚合根增删改查,完全去掉EFCore

没有基础的&#xff0c;请参考上一篇 彩蛋到最后一张图里找 参考链接 结果直接上图&#xff0c;没有任何业务代码 启动后&#xff0c;已经有了基本的CRUD功能&#xff0c;还扩展了批量删除&#xff0c;与动态查询 动态查询截图&#xff0c;支持分页&#xff0c;排序 实现原理…

《让你的时间多一倍》逃离时间陷阱,你没有自己想的那么懒 - 三余书屋 3ysw.net

让你的时间多一倍 今天我们来阅读法比安奥利卡尔的作品《让你的时间多一倍》。或许你会心生疑虑&#xff0c;这本书是否又是一本沉闷的时间管理指南&#xff1f;但我要告诉你的是&#xff0c;尽管时间管理这个话题已经为大众所熟知&#xff0c;这本书却为我们揭示了一个全新的…

SpringBoot实现RabbitMQ的定向交换机(SpringAMQP 实现Direct定向交换机)

文章目录 Direct 交换机特点实战声明交换及其队列(以注解方式)发消息 应用 上一篇文章中的 Fanout 模式&#xff0c;一条消息&#xff0c;会被所有订阅其交换机的队列都消费。 但是&#xff0c;在某些场景下&#xff0c;我们希望不同的消息被不同的队列消费。这时就要用到 Dir…

RabbitMQ 延时消息实现

1. 实现方式 1. 设置队列过期时间&#xff1a;延迟队列消息过期 死信队列&#xff0c;所有消息过期时间一致 2. 设置消息的过期时间&#xff1a;此种方式下有缺陷&#xff0c;MQ只会判断队列第一条消息是否过期&#xff0c;会导致消息的阻塞需要额外安装 rabbitmq_delayed_me…

实时语音识别(Python+HTML实战)

项目下载地址&#xff1a;FunASR 1 安装库文件 项目提示所需要下载的库文件&#xff1a;pip install -U funasr 和 pip install modelscope 运行过程中&#xff0c;我发现还需要下载以下库文件才能正常运行&#xff1a; 下载&#xff1a;pip install websockets&#xff0c;pi…

三大热门猫咪主食冻干测评:希喂、VE、PR主食冻干PK

很多铲屎官在选购主食冻干时进口、国产犹豫不决&#xff0c;总觉得进口的主食冻干品控、配方会比国产的更好&#xff0c;但是进口的营养指标又不如国产、价格也令人望而却步。正是这样的摇摆不定&#xff0c;最后抱着试一试的心态盲入主食冻干&#xff0c;运气好的买回家的主食…

基于递归残差U-Net的医学图像分割

基于递归残差U-Net的医学图像分割 摘要相关工作方法---3 RU-Net and R2U-Net Architectures---3 RU-Net和R2 U-Net架构 【2019】Recurrent residual U-Net for medical image segmentation 摘要 基于深度学习&#xff08;DL&#xff09;的语义分割方法在过去几年中一直提供最先…

YoloV8实战:使用YoloV8检测钢材表面缺陷

摘要 本文讲解一下实战,使用YoloV8检测钢材表面缺陷。起因是有粉丝搞不定这个数据集,检测的时候出现了不收敛的情况。所以,给大家讲讲如何去做。 不收敛的原因 一般遇到不收敛的情况,就是数据转化的时候出错了,大家可以打开runs下面的训练日志,观察一下是否正常。 如…