2023华为OD机试真题【组装数组】

2023-10-27

题目描述

给你一个整数M和数组N,N中的元素为连续整数,要求根据N中的元素组装成新的数组R,组装规则:
1.R中元素总和加起来等于M
2.R中的元素可以从N中重复选取
3.R中的元素最多只能有1个不在N中,且比N中的数字都要小(不能为负数) 输入描述 第一行输入是连续数组N,采用空格分隔第二行输入数字M 输出描述 输出的是组装办法数量,int类型

备注 1≤M≤30 1 ≤ N.length ≤ 1000

示例1
输入 2 5

输出

1

说明 只有1种组装办法,就是[2,2,1]

示例2
输入 2 3 5
输出 2

说明 共两种组装办法,分别是[2,2,1],[2,3]

解题思路

使用(DFS)来解答,枚举所有可能的组合,对于每一次搜索,分为两种情况:

1.选取当前数值;
2.不选取当前数值。

当前总和超过了m,则终止搜索;当当前总和小于等于m且差值小于nums中的最小值,则计数器加1;对于每一个数值,都需要尝试选取和不选取两种情况,进入递归搜索。

代码示例

import java.util
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023华为OD机试真题【组装数组】 的相关文章

随机推荐

  • 显示iPhone已停用,连接iTunes 时,如何解锁又能保留数据

    本人手机是 iphone6 plus 因荧屏坏了无法使用 但主板没坏 只是看不到内容 所以不小心点到解锁界面太多次导致停用了 无可奈何去修完回来以后 才对手机进行了恢复停机的操作 首先 需要一台电脑 并安装了 iTunes 软件 手机先关机
  • 从零开始学习JavaScript:轻松掌握编程语言的核心技能①

    从零开始学习JavaScript 轻松掌握编程语言的核心技能 一 JavaScript 简介 为什么学习 JavaScript JavaScript 用法 二 JavaScript 输出 JavaScript 显示数据 JavaScript
  • linux时间校准步骤记录

    记录一下校准时间操作的执行步骤 首先使用 date 查看当前时间是否准确 校准时间命令 ntpdate cn pool ntp org 如果没有权限 sudo i 会出现输入密码 直接输入密码即可 再次执行校准时间操作命令 ntpdate
  • qt TCP接收数据遇到的问题

    项目负责利用TCP来传输一组大的数据 然后在接收函数里将接收的数组进行解包赋值 从结果来看发现解包出来的数据都是错误的 几乎都是随机并且好几个值是负无穷 这里就发现了QT的TCP传输机制 它将我的数据分两次接收 每一次是原来的一半 例如我传
  • 98. Validate Binary Search Tree 解题记录

    题目描述 Given a binary tree determine if it is a valid binary search tree BST Assume a BST is defined as follows The left s
  • 基于 session 和基于 token 的用户认证方式到底该如何选择

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 现在貌似大多数网站用户认证都是基于 session 的 即在服务端生成用户相关的 session 数据 而发给客户端 sesssion id 存放到 cookie 中 这样
  • beyond compare使用

    灰色 在自己定义的比较标准下比较 完全相同 红色 在自己定义的比较标准下比较 不相同 蓝色 在自己定义的比较标准下 蓝色的文件为多出来的文件 2012 10 15
  • 微信小程序quickstartFunctions中云函数的应用

    1 在quickstartFunctions文件中新建文件夹和文件 2 index js 文件书写 const cloud require wx server sdk cloud init env cloud DYNAMIC CURRENT
  • dbeaver导出建表语句_常用SQL语句(时常修改)

    咱们在开发中有很多的sql 是不好写的 写完了 还总容易出问题 所以从现在开始总结 这些SQL语句 2019 01 09更新 这个问题是因为做设计的时候忘了数据的唯一的问题 导致数据出现重复 查询的时候出现了查询的selectOne变成se
  • Sencha的Eclipse插件提示和技巧

    原文 http www sencha com blog sencha eclipse plugin tips tricks Sencha的Eclipse插件是一个完整的用于流行的Eclipse IDE的代码辅助和验证插件 有了该插件 就可以
  • lol数据英雄联盟接口LOL接口电竞api开发比分网分享@

    英雄联盟数据LOL接口电竞api开发比分网分享 TOC 数据来自marz数据alan marzesport com 各大赛区的lol数据都有 1 获取赛事 接口 host1 api series 9870 示例 赛事相关接口 begin a
  • Vmware虚拟机网络模式原理及配置详解

    概述 VMware为我们提供了三种网络工作模式 它们分别是 bridged 桥接模式 host only 仅主机模式 nat 网络地址转换模式 打开VMware Workstation 我们可以在选项栏的 编辑 下的 虚拟网络编辑器 中看到
  • 915. 分割数组-动态规划算法

    915 分割数组 动态规划算法 给定一个数组 nums 将其划分为两个连续子数组 left 和 right 使得 left 中的每个元素都小于或等于 right 中的每个元素 left 和 right 都是非空的 left 的长度要尽可能小
  • 跨境做独立站,如何低成本引流?你的流量密码在这

    大家都知道 海外的消费习惯与国内不同 独立站一向是海外消费者的最喜欢的购物方式之一 这也吸引了许多跨境商家开设独立站 独立站不同于其他的第三方平台 其他平台可以靠平台自身流量来获得转化 而独立站本身没有流量 需要卖家从各大社媒平台进行自主引
  • 史上最牛独立开发者:花20美元狂赚100万美元

    Joe Kaufman 是一个名副其实的独立开发者 只有一个同伴 他一人处理所有的设计 美术 动画 尽管如此 他的游戏还是获得了巨大成功 Grisly Manor 恐怖庄园的秘密 的下载量已达400万 Lost City 失落之城 的也已经
  • 如何统计Visual Studio Code项目的代码行数

    背景 年底到了 公司一年一度做述职报告的时间又到了 每到此时小伙伴们都想方设法的去做一些代码层面的汇总 在此交给大家个小妙招 走过路过不要错过哈 解决方案 使用Visual Studio Code自带的在文件中查找功能中的正则表达式实现代码
  • Android新手入门 FAQ

    Q 什么是Android A Android一词的本义指 机器人 同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称 该平台由操作系统 中间件 用户界面和应用软件组成 号称是首个为移动终端打造的真正开
  • Openstack Qos

    Openstack network qos 1 配置QOS 此处网络为provider网络 无self server网络 无L3 只有控制节点和计算节点 控制节点上 vim etc neutron neutron conf service
  • 立体匹配 -- PSM-Net 网络模型代码剖析

    只熟悉流程跑通代码不重要 重要的是理解网络的思想 GC Net提出了3D CNN编解码的形式做 cost volum 后处理的过程 PSM Net 加入图像金字塔的模块结合3D CNN 输出图像视差图 一 特征提取模块 作者用 3层 33的
  • 2023华为OD机试真题【组装数组】

    题目描述 给你一个整数M和数组N N中的元素为连续整数 要求根据N中的元素组装成新的数组R 组装规则 1 R中元素总和加起来等于M 2 R中的元素可以从N中重复选取 3 R中的元素最多只能有1个不在N中 且比N中的数字都要小 不能为负数 输