一、题目描述
给你一个整数M和数组N,N中的元素为连续整数,要求根据N中的元素组装成新的数组R。
组装规则:
- R中元素总和加起来等于M;
- R中的元素可以从N中重复选取;
- R中的元素最多只能有1个不在N中,且比N中的数字都要小(不能为负数)
二、输入描述
第一行输入是连续数组N,采用空格分隔;
第二行输入数字M;
三、输出描述
输出的是组装办法数量,int类型。
补充说明
1 <= N.length <= 30
1 <= N.length <= 1000
四、测试用例
测试用例1
1、输入
3 4 5
8
2、输出
4
3、说明
N = [3, 4, 5],min = 3(允许额外数字可为 1 或 2)。
仅用 N:
3+5 = 8
4+4 = 8
使用额外数字:
若额外数字为 1,则 N 部分和需为 7:可用组合 3+4
若额外数字为 2,则 N 部分和需为 6:可用组合 3+3
华为OD机试真题:Java实现组装新数组
该博客介绍了华为在线开发者测试(OD)的一道Java编程题,要求根据给定的连续整数数组和目标整数M,组装符合特定规则的新数组。解题思路包括读取输入、转换数组、使用递归计算组装办法数量。博客还提供了Java算法源码及效果展示。
订阅专栏 解锁全文
892

被折叠的 条评论
为什么被折叠?



