题目描述
给你一个整数M和数组N,N中的元素为连续整数,要求根据N中的元素组装成新的数组R,组装规则:
- R中元素总和加起来等于M
- R中的元素可以从N中重复选取
- R中的元素最多只能有1个不在N中,且比N中的数字都要小(不能为负数)
输入描述
第一行输入是连续数组N,采用空格分隔
第二行输入数字M
输出描述
输出的是组装办法数量,int类型
备注
- 1 ≤ M ≤ 30
- 1 ≤ N.length ≤ 1000
用例
| 输入 | 2 5 |
| 输出 | 1 |
| 说明 | 只有1种组装办法,就是[2,2,1] |
| 输入 | 2 3 5 |
| 输出 | 2 |
| 说明 | 一共两种组装办法,分别是[2,2,1],[2,3] |
C++
#include <iostream>
#include <vector>

这篇博客主要介绍了华为OD机考中的一道题目,要求根据给定的连续整数数组N和目标整数M,组装符合特定规则的新数组R。规则包括R的元素总和等于M,元素可重复选取,且最多一个元素小于数组中最小值但不为负。文章提供了C++、JavaScript、Java和Python四种语言的解题方案,并附带了输入输出描述及样例。
订阅专栏 解锁全文
298

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



