华为OD机试 - 用连续自然数之和来表达整数 - 滑动窗口(Java 2023 B卷 100分)

目录
- 专栏导读
- 一、题目描述
- 二、输入描述
- 三、输出描述
- 四、解题思路
- 五、Java算法源码
- 六、效果展示
- 1、输入
- 2、输出
华为OD机试 2023B卷题库疯狂收录中,刷题点这里
专栏导读
本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。
一、题目描述
一个整数可以由连续的自然数之和来表示给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。
二、输入描述
一个目标整数T(1<=T<=1000)
三、输出描述
该整数的所有表达式和表达式的个数。如果有多种表达式,输出要求为:
自然数个数最少的表达式优先输出
每个表达式中按自然数递增的顺序输出,具体的格式参见样例。
在每个测试数据结束时,输出一行”Result:X”,其中X是最终的表达式个数。
用例:
1、输入
9
2、输出
9=9
9=4+5
9=2+3+4
Result:3
四、解题思路
- 输入目标整数T;
- 定义存储符合要求的数组集合arrList;
- 定义sum,计算窗口之和;
- 如果窗口之和大于目标t,left指针右移;
- 如果窗口之和等于目标t,表示获取到合适窗口;
- left指针右移,继续探索新窗口;
- 如果right指针超出范围,break;
- right指针右移,继续探索新窗口;
- 如果窗口之和小于目标t,right指针右移;
- 按照自然数个数升序排序,自然数个数最少的表达式优先输出;
- 按照指定格式输出。
五、Java算法源码
public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 目标整数Tint t = sc.nextInt();int[] arr = new int[t];for (int i = 0; i < t; i++) {arr[i] = i + 1;}// 符合要求的数组集合List<int[]> arrList = new ArrayList<>();int left = 0;int right = 1;// 计算窗口之和int sum = arr[left];// 滑动窗口while (left < t) {// 如果窗口之和大于目标t,left指针右移if (sum > t) {sum -= arr[left++];} else if (sum == t) {// 如果窗口之和等于目标t,表示获取到合适窗口int[] oks = Arrays.copyOfRange(arr, left, right);arrList.add(oks);// left指针右移,继续探索新窗口sum -= arr[left++];// 如果right指针超出范围,breakif (right >= t) {break;}// right指针右移,继续探索新窗口sum += arr[right++];} else {// 如果窗口之和小于目标t,right指针右移sum += arr[right++];}}// 按照自然数个数升序排序,自然数个数最少的表达式优先输出arrList.sort((x, y) -> x.length - y.length);// 按照指定格式输出for (int[] array : arrList) {StringJoiner stringJoiner = new StringJoiner("+");for (int i : array) {stringJoiner.add(String.valueOf(i));}System.out.println(t + "=" + stringJoiner);}System.out.println("Result:" + arrList.size());
}
六、效果展示
1、输入
100
2、输出
100=100
100=18+19+20+21+22
100=9+10+11+12+13+14+15+16
Result:3

🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)
🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

相关文章:
华为OD机试 - 用连续自然数之和来表达整数 - 滑动窗口(Java 2023 B卷 100分)
目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷)》…...
玩转ChatGPT:图像识别(vol. 1)
一、写在前面 来了来了,终于给我的账号开放图像识别功能了,话不多说,直接开测!!! 二、开始尝鲜 (1)咒语: GPT回复: 这幅图显示了从2005年1月到2012年12月的…...
oracle 数据库实验三
(1)向 ORCL数据库添加一个重做日志文件组(组号为5),包含一个成员文件d:\redo05a.log,大小为4MB ; 要向Oracle数据库添加一个重做日志文件组,您可以执行以下步骤: 连接到数据库&…...
多线程并发篇---第五篇
系列文章目录 文章目录 系列文章目录一、什么是线程安全二、Thread类中的yield方法有什么作用?三、Java线程池中submit() 和 execute()方法有什么区别?一、什么是线程安全 线程安全就是说多线程访问同一段代码,不会产生不确定的结果。 又是一个理论的问题,各式各样的答案有…...
java实现权重随机获取值或对象
文章目录 场景TreeMap.tailMap方法简单分析使用随机值使用treemap实现权重取值将Int改为Double稍微准确一点,因为double随机的值更加多测试main方法 当权重的参数比较多,那么建议使用hutool封装的 场景 按照权重2,8给用户分组为A,B, TreeMap.tailMap方法 treeMap是一种基于红…...
期权账户怎么开通的?佣金最低多少?
场内期权的合约由交易所统一标准化定制,大家面对的同一个合约对应的价格都是一致的,比较公开透明。期权开户当天不能交易的,期权开户需要满足20日日均50万及半年交易经验即可操作。 个人投资者想要交易期权首先就得先开户,根据规…...
MySQL(存储过程,store procedure)——存储过程的前世今生 MySQL存储过程体验 MybatisPlus中使用存储过程
前言 SQL(Structured Query Language)是一种用于管理关系型数据库的标准化语言,它用于定义、操作和管理数据库中的数据。SQL是一种通用的语言,可以用于多种关系型数据库管理系统(RDBMS),如MySQ…...
如何建立线上线下相结合的数字化新零售体系?
身处今数字化时代,建立线上线下相结合的数字化新零售体系是企业成功的关键。蚓链数字化营销系统致力于帮助企业实现数字化转型,打通线上线下销售渠道,提升品牌影响力和用户黏性,那么具体是如何建立的? 1. 搭建数字化中…...
python:xlwings 操作 Excel 加入图片
pip install xlwings ; xlwings-0.28.5-cp37-cp37m-win_amd64.whl (1.6 MB) 摘要:Make Excel fly: Interact with Excel from Python and vice versa. Requires: pywin32 编写 xlwings_test.py 如下 # -*- coding: utf-8 -*- """ xlwings 结合 …...
关于hive的时间戳
unix_timestamp()和 from_unixtime()的2个都是格林威治时间 北京时间 格林威治时间8 from_unixtme 是可以进行自动时区转换的 (4.0新特性) 4.0之前可以通过from_utc_timestamp进行查询 如果时间戳为小数,是秒&#…...
win10 wsl安装步骤
参考: 安装 WSL | Microsoft Learn 一、安装wsl 1.若要查看可通过在线商店下载的可用 Linux 发行版列表,请输入: wsl --list --online 或 wsl -l -o> wsl -l -o 以下是可安装的有效分发的列表。 使用 wsl.exe --install <Distro>…...
深入理解Spring Boot AOP:切面编程的优势与应用
在开发现代化的软件系统中,我们经常会遇到一些横切关注点(cross-cutting concerns),比如日志记录、安全控制、事务管理等。传统的面向对象编程(OOP)在处理这些关注点时往往需要在多个模块中重复编写相似的代…...
使用大模型提效程序员工作
引言 随着人工智能技术的不断发展,大模型在软件开发中的应用越来越广泛。 这些大模型,如GPT、文心一言、讯飞星火、盘古大模型等,可以帮助程序员提高工作效率,加快开发速度,并提供更好的用户体验。 本文将介绍我在实…...
如何应对量化交易,个人股票账户如何实现量化程序化自动交易
目前股票量化交易是对个人账户开放的,如果你没开通,可能是没有找对渠道,很多券商的手机客户端是包含某些简易版的策略交易,如网格策略,自动止盈止损等,这些策略交易虽然简单、灵活性差,但也是量…...
milvus测试
milvus测试 目标 其实,我应该弄明白他的输入输出分别是什么? 输入是图片,图片经过ml模型进行特征提取,再在milvus中进行存储或者检索 部署 ✘ delldell-Precision-3630-Tower /nvme/baum/git-project/milvus master …...
antd 表格getCheckboxProps禁用
需求:列表某些数据复选框禁用 实现效果图: 实现代码: <a-table :pagination"false" :row-selection"{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,getCheckboxProps:getCheckboxProps }" :column…...
京东商品列表数据接口,关键词搜索京东商品数据接口
在网页抓取方面,可以使用 Python、Java 等编程语言编写程序,通过模拟 HTTP 请求,获取京东网站上的商品页面。在数据提取方面,可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是,京东网站…...
Vue使用BMapGL,及marker简单使用
1、封装加载器 export function BMapLoader(ak) {return new Promise((resolve, reject) > {if (window.BMapGL) {resolve(window.BMapGL)} else {const script document.createElement(script)script.type text/javascriptscript.src https://api.map.baidu.com/api?v…...
WuThreat身份安全云-TVD每日漏洞情报-2023-10-10
漏洞名称:Glibc ld.so本地权限提升漏洞 漏洞级别:高危 漏洞编号:CVE-2023-4911,CNNVD-202310-197 相关涉及:系统-ubuntu_22.04-glibc-*-Up to-(excluding)-2.35-0ubuntu3.4- 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-24714 漏洞名称:D-L…...
BSCI认证是谁来验厂?
BSCI认证是BusinessSocialComplianceInitiative的缩写,中文被叫做商业社会标准认证。而BSCI则是倡议商界遵守社会责任的组织,同时它是一个非营利性的组织,宗旨是通过一套统一程序,同时不断完善发展政策,实现监控和促进…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...
Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
