随机数选最少数字求和

2023-10-27

本文为最近做过的一道编程笔试题,代码实现方式多种多样,此处本人提供的代码可以获得正确解,仅供大家参考。

一、题目描述

题目描述
小明用计算机随机生成了N个正整数,他希望从这N个数中选取若干个数,使得它们的和等于M。这些随机生成的数字可能会相同,但是每个数字最多只允许使用一次。
当然这样的选取方案可能不存在,也可能有多个。
现在希望编写一个程序,能够找出数字个数最少的选取方案,输出对应的最少数字的个数,如果无解输出“No solution”。
输入描述

  • 单组输入,每组输入2行。
  • 第1行包含两个正整数N和M,分别表示初始输入的正整数个数和目标数字和(N<=1e3,M<=1e5)。
  • 第2行为N个正整数,两两之间用空格隔开(每一个正整数均小于等于1e5)。

输出描述

  • 输出数字个数最少的选取方案中所包含的最少数字个数,如果无解输出“No solution”。

样例

  • 输入
    5 5
    1 3 2 1 1
    
  • 输出
    2
    

二、实现代码程序

代码实现如下:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> findCombination(vector<int>& numbers, int target) {
    vector<int> combination;
    sort(numbers.begin(), numbers.end(), greater<int>());

    for (int num : numbers) {
        if (num <= target) {
            combination.push_back(num);
            target -= num;
        }
    }

    if (target == 0) {
        return combination;
    } else {
        combination.clear();
        return combination;
    }
}

int main() {
    int N, M;
    cin >> N >> M;

    vector<int> numbers(N);
    for (int i = 0; i < N; ++i) {
        cin >> numbers[i];
    }

    vector<int> solution = findCombination(numbers, M);

    if (!solution.empty()) {
        cout << solution.size() << endl;
    } else {
        cout << "No solution" << endl;
    }

    return 0;
}

三、测试结果截图

输入

5 5
1 3 2 1 1

输出结果如下
在这里插入图片描述

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

随机数选最少数字求和 的相关文章

  • 谁能建议我一种在 C++ 中分割名称的简单方法

    我一直在尝试将名称分为名字和姓氏 但我确信我的实现就简单性而言并不是最好的 string name John Smith string first string last name name find getting lastname fo
  • 将集合绑定到自定义控件属性

    我没有运气尝试将数据集合绑定到我的自定义控件的属性 我已经实现了该控件的字符串属性的机制 在此处提供了一些帮助 并期望集合类型同样简单 但是我无法让它再次工作 这是我的自定义控件视图
  • 尚未注册类型“IServiceProviderFactory[Autofac.ContainerBuilder]”的服务

    当运行以下命令添加数据库迁移脚本时 出现以下错误 dotnet ef migrations add InitialCreate v o Migrations context MyContext 访问 Microsoft Extensions
  • 在 C/C++ 中获得正模数的最快方法

    通常在我的内部循环中 我需要以 环绕 方式索引数组 因此 例如 如果数组大小为 100 并且我的代码要求元素 2 则应该给它元素 98 高级语言 例如 Python 可以简单地使用my array index array size 但由于某
  • FileStream 构造函数和默认缓冲区大小

    我们有一个使用 NET 4 用 C 编写的日志记录类 我想添加一个构造函数参数 该参数可以选择设置文件选项 WriteThrough http msdn microsoft com en us library system io fileo
  • 防止 boost::asio::io_context 在空轮询调用时停止

    此代码调用发布的句柄 boost asio io context ioc boost asio post ioc std cout lt lt lol lt lt std endl ioc poll 而这并没有 boost asio io
  • 时间:2019-03-17 标签:c#ThreadSafeDeepCopy

    我一直在阅读很多其他问题以及大量谷歌搜索 但我一直无法找到明确的解决方案 根据我读过的一些最佳实践 类的静态方法应该创建线程安全的 并且实例成员应该将线程安全留给消费者 我想为该类实现深度复制方法 该类本身还有其他引用类型成员 有没有什么方
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • fprintf() 线程安全吗?

    我正在为野人就餐问题的某些变量编写一个 C 解决方案 现在 我创建线程 每个线程都将 FILE 获取到同一个调试文件 在线程内我正在使用 fprintf 进行一些打印 打印的语句不受任何类型的互斥锁等保护 我没有在调试文件中观察到任何交错行
  • 类的成员复制

    在学习 复制成员 概念时 书中给出了如下说法 此外 如果非静态成员是引用 const 或没有复制赋值的用户定义类型 则无法生成默认赋值 我不太明白这个声明到底想传达什么 或者说这个说法指的是哪一种场景 谢谢 该语句与编译器自动为您编写的类
  • 从 WebBrowser 控件 C# 获取滚动值

    我试图在 WebBrowser 控件中获取网页的 Y 滚动索引 但无法访问内置滚动条的值 有任何想法吗 对于标准模式下的 IE 使用文档类型 正如你所说 scrollTop是的财产元素 而不是 HtmlDocument htmlDoc th
  • Visual Studio Code:如何配置 includePath 以获得更好的 IntelliSense 结果

    我是使用 Visual Studio Code 的完全初学者 我不知道我在做什么 我已经四处搜索 也许还不够 但我找不到像我这样的人如何配置的简单解释c cpp properties json每当我单击带有绿色波浪线下划线的行旁边的黄色灯泡
  • C# 构建一个 webservice 方法,它接受 POST 方法,如 HttpWebRequest 方法

    我需要一个接受 POST 方法的 Web 服务 访问我的服务器正在使用 POST 方法 它向我发送了一个 xml 我应该用一些 xml 进行响应 另一方面 当我访问他时 我已经使用 HttpWebRequest 类进行了管理 并且工作正常
  • 如何从文本文件读取整数到数组

    这就是我想做的 我对此有些不满 但我希望你能容忍我 这对我来说是一个非常新的概念 1 在我的程序中 我希望创建一个包含 50 个整数的数组来保存来自文件的数据 我的程序必须获取用户的文档文件夹的路径 2 文件的名称为 grades txt
  • 检查 RoutedEvent 是否有任何处理程序

    我有一个自定义 Button 类 当单击它时 打开特定窗口 它总是执行相同的操作 我添加了一个可以在按钮的 XAML 中分配的 Click 事件 就像常规按钮一样 当它被单击时 我想执行 Click 事件处理程序 如果已分配 否则我想执行默
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • lumen初学教程

    文档传送 lumen文档 laravel文档 laravel命令速查表 安装 Lumen composer global require laravel lumen installer 创建新的项目 通过终端进入所需创建目录的文件夹 lum
  • 如何查看自己的cuda环境,以及其对应版本

    第一步 cmd打开命令窗口 输入conda env list 查看有几个conda环境 第二步 选择一个环境进入conda 输入conda activate pytorch 第三步 进入python环境 输入python 第四部 在Pyth
  • 前端如何在H5页面调起微信支付

    在微信服务号开发的时候经常会遇到微信支付的功能实现 通过实际经验自己总结了一下 前端在H5页面调起微信支付有两种办法 一是利用内置对象 二是通过引用微信的js sdk 亲测都能支付成功 从写法上来看用内置对象方法比较简单 这里讲的只是前端要
  • Python读取和写入yaml文件

    yaml是专门用来写配置文件的语言 简洁强大 远比JSON格式方便 yaml在python语言中有PyYAML安装包 我这边应用场景是用来做接口自动化时 接口返回的值写入到yaml文件 然后需要用的时候直接引用即可 不如登录接口 我需获取接
  • java基础之内部类

    1 简介 内部类 inner class 是定义在另一个类中的类 使用内部类的原因 有以下三点 内部类方法可以访问可以访问该类定义所在的作用域中的数据 包括私有的数据 内部类可以对同一个包中的其他类隐藏起来 当想要定义一个回调函数时且不想编
  • 符合功能安全要求的动态测试工具-TESSY

    Tessy是一个专门针对嵌入式软件的C C 代码进行单元 集成测试的工具 它可以自动化地执行测试 评估测试结果并生成测试报告 Tessy的目标就是 通过自动化整个测试周期 支持针对C语言的单元测试 集成测试 同时 Tessy也同样关注测试组
  • SpringBoot利用cancl监听mysql的binlog日志通过kafja实时同步数据到es

    canal官网 https github com alibaba canal wiki gitlab https github com alibaba canal wiki QuickStart 下载地址 https github com
  • 关于GPT的20个知识,你都知道吗?

    1 GPT全称是什么 GPT全称是Generative Pre trained Transformer 2 GPT是由谁研发的 GPT是由OpenAI的研究人员研发的 3 GPT的目的是什么 GPT的目的是通过无监督的预训练 obtain
  • 离线安装/断网安装python第三方库

    由于team服务器在另一个校区 为了安全 校网络技术中心建议我们不要让服务器连外网 所以在复现代码的时候遇到一些python第三方库没法使用 就只能离线安装了 说起来都是泪 在这里 谢谢他们 参考链接 1 呕心沥血整理 python离线安装
  • 深度学习入门之Pytorch——Momentum

    动量法 动量法是梯度下降法的变式 在随机梯度下降的同时 增加动量 这是来自于物理中的概念 可以想象损失函数是一个山谷 一个球从山谷滑下来 在一个平坦的地势 球的滑动速度就会慢下来 可能陷入一些鞍点或者局部极小值点 如图 这个时候给它增加动量
  • Vue中自定义指令是什么?有哪些应用场景?

    一 什么是指令 开始之前先学习一下指令系统这个词 指令系统是计算机硬件的语言系统 也叫机器语言 它是系统程序员看到的计算机的主要属性 因此指令系统表征了计算机的基本功能决定了机器所要求的能力 在vue中提供了一套为数据驱动视图更为方便的操作
  • 终于解决了Invalid from address

    以太坊存证 ipfs 运行环境是ganache cli自动生成十个账户 import Web3 from web3 let getWeb3 new Promise function resolve reject Wait for loadi
  • Webpack详细教程

    webpack教程 第 1 章 webpack 简介 1 1 webpack 是什么 1 2 webpack 五个核心概念 1 2 1 Entry 入口 Entry 1 2 2 Output 输出 Output 1 2 3 Loader 1
  • 实战wxPython:045 - 一些扩展按钮控件

    本文介绍几个扩展按钮 它们不数属于wxPython核心库中的控件 但是它们可以提供一些特殊的效果 一 PlateButton PlateButton是一个通用按钮控件 它是一个自定义的平面按钮 它在许多方面模拟Safari浏览器书签栏中的按
  • linux安装git步骤;基于yum、dnf、源码安装【非常详细】

    这里写目录标题 一 dnf安装 二 yum安装 三 源码安装 1 基于 RPM 的发行版 Fedora RHEL RHEL衍生版 2 基于 Debian 的发行版 Debian Ubuntu Ubuntu derivatives 3 yum
  • 一文看懂npm、yarn、pnpm之间的区别

    原文 Understanding differences between npm yarn and pnpm 作者 Alex Kras 翻译 雁惊寒 本文作者对比了当前主流的包管理工具npm yarn pnpm之间的区别 并提出了合适的使用
  • 【Java基础】【狂神说Java】Java零基础学习视频通俗易懂P21-26(Day1昨天忘记发布了)

    Java小技巧 idea下 psvm tab键 补全 public static void main String args sout enter键 鼠标点击选择 可以实现补全 System out println System out p
  • Spring5学习深入学习理解Bean自动装配

    Spring5学习深入学习理解Bean自动装配 关于作者 作者介绍 博客主页 作者主页 简介 JAVA领域优质创作者 一名在校大三学生 在校期间参加各种省赛 国赛 斩获一系列荣誉 关注我 关注我学习资料 文档下载统统都有 每日定时更新文章
  • Linux下shel脚本之批量修改文件扩展名

    Linux下shel脚本之批量修改文件扩展名 一 脚本要求 二 脚本内容 三 运行脚本 一 脚本要求 二 脚本内容 三 运行脚本 一 脚本要求 1 在 data tmp 下的所有文件扩展名改为 py 二 脚本内容 1 查看要修改扩展名的目录
  • 随机数选最少数字求和

    本文为最近做过的一道编程笔试题 代码实现方式多种多样 此处本人提供的代码可以获得正确解 仅供大家参考 目录 一 题目描述 二 实现代码程序 三 测试结果截图 一 题目描述 题目描述 小明用计算机随机生成了N个正整数 他希望从这N个数中选取若