算法Day31 房间收纳

news2024/11/15 21:27:12

房间收纳

Description

对于零落的玩具,你需要进行收纳,为了将最多的玩具进行收纳,请你合理分配收纳柜和房间数量。
请你将一些玩具收纳在一个房间中,给你一个二维数组 roomTypes,其中的roomTypes[i] = {numberOfBoxes_i, numberOfUnitPerRoom_i}

  • numberOfBoxes_i 是类型 i 的收纳柜的数量;
  • numberOfUnitPerRoom_i 是类型 i 的收纳柜可以收纳的玩具数量;
    整数roomSize表示房间中可以放下的收纳柜的最大数量。只要箱子数量不超过 roomSize,你就可以选择任意收纳柜放到房间中。
    返回房间可以收纳的玩具最大总数。

提示:
(1)1 ≤ roomTypes.length ≤ 1000
(2)1 ≤ numberOfBoxes_i, numberOfUnitPerRoom_i ≤ 1000
(3)1 ≤ roomSize ≤ 10^6

Input

第 1 行输入收纳柜种类数目 n;
第 2 到第 n+1 行输入第 i 个收纳柜的数量及当前收纳柜可以收纳的玩具数量(即二维数组 roomTypes),每行两个数之间用空格隔开;
第 n+2 行输入房间可以放下的收纳柜总数量;
如:
3
1 3
2 2
6 1
4

Output

输出最大收纳的玩具数量(整数),如:
7

Sample

在这里插入图片描述

代码

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int  n = scanner.nextInt();
        int roomN[] = new int[n];
        int roomC[] = new int[n];
        for(int i = 0;i<n;i++){
            roomN[i] = scanner.nextInt();
            roomC[i] = scanner.nextInt();
        }
        int capacity = scanner.nextInt();
        //排序
        for(int i = 0;i<n-1;i++)
            for(int j = i+1;j<n;j++){
                if(roomC[i]<roomC[j]){
                    int tempN = roomN[i];
                    roomN[i] = roomN[j];
                    roomN[j] = tempN;
                    int tempC = roomC[i];
                    roomC[i] = roomC[j];
                    roomC[j] = tempC;
                }
            }
        //收纳的玩具数量
        int count = 0;
        //开始计数的序号
        int number=0;
        //容量
        int c = 0;
        while(c<capacity&&number<n){
            if(roomN[number]>0){
                count+=roomC[number];
                c++;
                roomN[number]--;
            }
            else {
                number++;
            }
        }
        System.out.println(count);
    }
}

思路

贪心法解决,首先排序,排序的时候两个数组同时交换
其次不断添加roomC即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1310096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java反射,枚举讲解

&#x1f495;"理想者最可能疯狂。"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;Java反射&#xff0c;枚举讲解 "&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;数据结构之Map/Set讲解硬核源码剖析 一.反射 1.概念 …

调用函数(打印素数)

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int is_prime(int n) {for (int j 2; j < n; j){if (n % j 0)return 0;}return 1; } void main() {for (int n 101; n < 200; n){int ret is_prime(n);if(ret1)printf("%d ", n);} }

Unity | Shader基础知识(第四集:Shader结构体)

目录 一、本节介绍 1 上集回顾 2 本节介绍 二、结构体的需求 1 数据的接入 2 开始写结构体 三、unity封装好的结构体 1 unity封装好了很多结构体 2 如何使用封装好的结构体 四、下集预告 一、本节介绍 1 上集回顾 上一集&#xff0c;我们做了一个可以改变颜色的案例…

Linux 线程池源码剖析

1 了解线程池 1-1线程池的概述 由一个任务队列和一组处理队列的线程组成。一旦工作进程需要处理某个可能“阻塞”的操作,不用自己操作,将其作为一个任务放到线程池的队列,接着会被某个空闲线程提取处理。 1-2线程池的组件 任务 待处理的工作,通常由标识、上下文和处理…

D92-02-ASEMI快恢复二极管20A 200V

编辑&#xff1a;ll D92-02-ASEMI快恢复二极管20A 200V 型号&#xff1a;D92-02 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 特性&#xff1a;插件、快恢复二极管 最大平均正向电流&#xff1a;20A 最大重复峰值反向电压&#xff1a;200V 恢复时间&#xff1a;35ns…

QQ音乐评论爬虫程序【原创】

先找到一首歌&#xff0c;把请求参数替换到下面程序中 例如&#xff1a; ‘g_tk_new_20200303’: ‘5381’, ‘g_tk’:‘5381’, ‘topid’:‘102636799’, //歌曲ID ‘cv’:‘4747474’ … #此处修改请求的页数 if page >10: break import requests from urllib import p…

多组别cellchat

不同分组之间的配对分析 ⚠️&#xff1a;配对分析必须保证细胞类型是一样的&#xff0c;才可以进行配对。如果 两个样本的细胞类型不一样又想进行配对分析时&#xff0c;可以用subset把两个样本的细胞类型取成一致的。 1. 数据准备&#xff0c;分别创建CellChat对象 Sys.set…

Antd Select 添加中框

默认antd 的 Select中间并没有竖框&#xff0c;但是ui design设计了&#xff0c;所以记录一下如何添加 默认&#xff1a; CSS&#xff1a; .custom-select-suffix-icon {display: flex;align-items: center; }.custom-select-suffix-icon::before {content: ;height: 31px; …

1. Prism系列之数据绑定

Prism系列之数据绑定 文章目录 Prism系列之数据绑定一、安装Prism二、实现数据绑定三、更换数据源 一、安装Prism 创建一个WPF工程&#xff0c;创建名为 PrismNewSample 的WPF项目。 使用管理解决方案的Nuget包 在上面或许我们有个疑问&#xff1f; 为啥安装prism会跟Pri…

ICC2:如何调整floorplan原点位置

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 使用virtuoso layout或calibredrv改变原点位置可以参考专栏文章: Virtuoso layout如何改变原点坐标 ICC2中改变原点位置需要使用move_block_orgin命令,使用方法如下: move_block_origin -to [lind…

Epicypher:CUTANA™ E. coli Spike-in DNA

来源于Escherichia coli&#xff08;E.coli&#xff09;的片段DNA可以用作核酸酶靶向切割和释放&#xff08;CUT&RUN&#xff09;的实验标准化的spike-in对照。产品CUTANA™ E. coli Spike-in DNA含有足够的材料&#xff0c;可用于100-200个CUT&RUN样本&#xff08;高丰…

Win10错误代码0x80070005的解决方法

在Win10电脑操作过程中&#xff0c;用户可能会遇到各种各样的问题&#xff0c;从而影响到自己正常使用电脑办公。现在&#xff0c;就有用户遇到了错误码0x80070005的提示&#xff0c;但不清楚具体的解决方法。下面小编给大家分享不同的解决方法&#xff0c;解决后Win10电脑就能…

唇彩行业分析:我国彩妆细分品类市场占比63%

唇部彩妆是指在唇部起到化妆修饰作用的产品&#xff0c;包括口红/唇膏、唇蜜/唇彩/唇釉、唇笔/唇线笔、唇泥四大类。总体来看&#xff0c;目前我国唇部彩妆细分品类主要集中在唇膏/口红、唇蜜/唇彩/唇釉。唇笔/唇线笔市场接受程度较低&#xff0c;这是由于唇笔/唇线笔的主要成分…

Git克隆远程仓库SSH

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 首先我们需要创建SSH Key 先进入用户主目录&#xff0c;在目录下查找有没有.ssh目录&#xff0c;没有则创建&#xff0c;然后进入目录&#xff0c;查看是否有id_rsa 和 id_rsa.pub 两个⽂件&#xff0c;一个是私钥&#xff…

自动转文字源码系统,随时随地自由转换,附带完整的搭建教程

互联网上的信息形式多种多样&#xff0c;其中文本是最基本也是最常见的信息形式之一。然而&#xff0c;这些文本往往是以HTML、XML、Markdown等格式存储和呈现的&#xff0c;对于用户来说&#xff0c;这些格式的文本可读性较差&#xff0c;难以直接编辑和使用。因此&#xff0c…

道路清障车行业分析:中国市场发展趋势研究

清障车全名为道路清障车&#xff0c;又称拖车、道路救援车、拖拽车&#xff0c;具有起吊、拽拉和托举牵引等多项功能&#xff0c;清障车主要用于道路故障车辆&#xff0c;城市违章车辆及抢险救援等。清障车按类别主要分为&#xff1a;拖吊连体型、拖吊分离型&#xff0c;一拖一…

vue前端访问Django channels WebSocket失败

现象 前端报错&#xff1a;SSH.vue:51 WebSocket connection to ‘ws://127.0.0.1:8000/server/terminal/120.59.88.26/22/1/’ failed: 后端报错&#xff1a;Not Found: /server/terminal/120.79.83.26/22/1/ 原因 django的版本与channels的版本不匹配&#xff08;django…

es6从url中获取想要的参数

第一种方法 很古老&#xff0c;通过 split 方法慢慢截取&#xff0c;可行是可行但是这个方法有一个弊端&#xff0c;因为 split 是分割成数组了&#xff0c;只能按照下标的位置获取值&#xff0c;所以就是参数位置一旦发生变化&#xff0c;那么获取到的值也就错位了 let user…

Python框架批量数据抓取的高级教程

一、背景介绍 批量数据抓取是一种常见的数据获取方式&#xff0c;能够帮助我们快速、高效地获取网络上的大量信息。本文将介绍如何使用Python框架进行大规模抽象数据&#xff0c;以及如何处理这个过程中可能遇到的问题。 二、项目需求 我们将爬取大量知乎文章&#xff0c;讨…

【送书活动】探究AIGC、AGI、GPT和人工智能大模型

文章目录 前言01 《ChatGPT 驱动软件开发》推荐语 02 《ChatGPT原理与实战》推荐语 03 《神经网络与深度学习》推荐语 04 《AIGC重塑教育》推荐语 05 《通用人工智能》推荐语 后记赠书活动 前言 人工智能技术在过去几年中发展迅猛&#xff0c;得益于大数据、云计算、深度学习等…