天池 在线编程 聪明的销售(计数+贪心)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

销售主管的任务是出售一系列的物品,其中每个物品都有一个编号。

由于出售具有相同编号的商品会更容易,所以销售主管决定删除一些物品。

现在她知道她最多能删除多少物品,她想知道最终袋子里最少可以包含多少种不同编号的物品。

例如,最开始她有n = 6 个物品,编号为:ids = [1,1,1,2,2,3],她最多可以删除 m = 2 个物品。

如果删除两个物品 1,则剩下的物品 ids = [1,2,2,3],此时她拥有三种不同编号的物品。

如果删除两个物品 2,则剩下的物品 ids = [1,1,1,3],此时她拥有两种不同编号的物品。

如果删除物品 2 和物品 3 各 1个,则剩下的物品 ids = [1,1,1,2],此时她拥有两种不同编号的物品。

我们发现,物品最少可以剩下两种不同的编号,所以你的程序要返回 2

ids 的大小不超过 10^5
1 <= ids[i] <= 1000000
1 <= m <= 100000样例 1
输入:
[1,1,1,2,2,3]
2
输出:
2

https://tianchi.aliyun.com/oj/245809026182441523/267721733825565365

2. 解题

  • 个数少的物品先拿走,减少的种类多
class Solution {
public:/*** @param ids: ID number of items* @param m: The largest number of items that can be remove* @return: the result of the min item*/int minItem(vector<int> &ids, int m) {// write your code hereunordered_map<int,int> goods_count;for(auto i : ids)goods_count[i]++;vector<int> count;for(auto &gc : goods_count)count.push_back(gc.second);sort(count.begin(), count.end());int kinds = count.size(), i = 0;while(i < kinds && m > 0){int take = min(m, count[i]);m -= take;count[i] -= take;if(count[i] == 0)i++;}return kinds-i;}
};

50ms C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

关于计算机书籍的收集与整理(一)

本文来源&#xff1a;https://github.com/pinefor1983/CS-Growing-book 一、程序员技术、管理和认知 1、程序员技术&管理 关于程序员职场晋升&#xff0c;这是我的7点具体建议优秀程序员的7个特点对码农后浪的6点建议程序员百万年薪进阶指南做好技术管理&#xff0c;你必须…

天池 在线编程 放小球(动态规划)

文章目录1. 题目2. 解题2.1 动态规划1. 题目 n 个桶中小球的个数已知, 可以操作 k 次(每次从桶中取出一个球,或者添加一个球), 每个桶有规定的最大容量 W[i]。 求操作后两相邻桶之间的最大差值的平方的最小值。 n < 100 W[i] < 100样例 1: 输入: 5 6 [1,2,3,4,5] [15,…

LeetCode 1716. 计算力扣银行的钱(等差数列)

文章目录1. 题目2. 解题1. 题目 Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。 最开始&#xff0c;他在周一的时候存入 1 块钱。 从周二到周日&#xff0c;他每天都比前一天多存入 1 块钱。 在接下来每一个周一&#xff0c;他都会比 前一个周一 多存入 1 块钱…

LeetCode 1717. 删除子字符串的最大得分

文章目录1. 题目2. 解题374 / 1631&#xff0c;前22.9%1215 / 7873&#xff0c;前15.4%1. 题目 给你一个字符串 s 和两个整数 x 和 y 。你可以执行下面两种操作任意次。 删除子字符串 "ab" 并得到 x 分。 比方说&#xff0c;从 “cabxbae” 删除 ab &#xff0c;得…

利用Python把四张图片按照顺序拼接起来

一、需求&#xff1a; 给出四张图片&#xff0c;按照一定的顺序拼接起来 二、图片&#xff1a; 左上角&#xff1a;&#xff08;像素512*512&#xff09; 右上角&#xff1a;&#xff08;像素284*512&#xff09; 左下角&#xff1a;&#xff08;像素284*512&#xff09; 右…

Linux:文件创建时间如何修改?

一、需求 修改文件创建时间 二、知识及方法步骤 touch命令用于创建空白文件或修改文件时间。 在Linux系统中一个文件有三种时间&#xff1a; 更改内容的时间 - mtime&#xff1a;当文件进行被写的时候&#xff0c;CTime就会更新更改权限的时间 - ctime&#xff1a;当文件的…

小案例:编写立方体六个面,合成一张全景图后端

一、需求&#xff1a; 给出立方体六个面&#xff0c;合成一张全景图 二、主要知识&#xff1a;py360convert 2.1、该项目的特点&#xff1a; 立方体贴图和等矩形之间的转换 等角于平面 纯python实现&#xff0c;仅依赖于numpy和scipy矢量化实施&#xff08;在大多数地…

LeetCode 1721. 交换链表中的节点(快慢指针)

文章目录1. 题目2. 解题1. 题目 给你链表的头节点 head 和一个整数 k 。 交换 链表正数第 k 个节点和倒数第 k 个节点的值后&#xff0c;返回链表的头节点&#xff08;链表 从 1 开始索引&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&am…

爬虫小案例:基于Bing关键词批量下载图片

一、需求&#xff1a; 基于Bing网站&#xff0c;输入关键词&#xff0c;批量下载图片保存到本地 二、演示&#xff1a; 三、直接上代码 import os import urllib.request import urllib.parse from bs4 import BeautifulSoup import re import time# 设置请求头 header {Us…

LeetCode 1722. 执行交换操作后的最小汉明距离(并查集)

文章目录1. 题目2. 解题1. 题目 给你两个整数数组 source 和 target &#xff0c;长度都是 n 。 还有一个数组 allowedSwaps &#xff0c;其中每个 allowedSwaps[i] [ai, bi] 表示你可以交换数组 source 中下标为 ai 和 bi&#xff08;下标从 0 开始&#xff09;的两个元素。…

线性表的顺序表示和实现

/* 顺序表存储结构容易实现随机存取线性表的第i 个数据元素的操作&#xff0c;但在实现插入、 删除的操作时要移动大量数据元素&#xff0c;所以&#xff0c;它适用于数据相对稳定的线性表&#xff0c;如职工工资 表、学生学籍表等。 c2-1.h 是动态分配的顺序表存储结构&#x…

LeetCode 1723. 完成所有工作的最短时间(DFS+剪枝 / 状态压缩DP)

文章目录1. 题目2. 解题2.1 DFS2.2 状态压缩DP265 / 3871&#xff0c; 前6.85% 前3题题解&#xff1a; LeetCode 5649. 解码异或后的数组&#xff08;位运算&#xff09;LeetCode 5652. 交换链表中的节点&#xff08;快慢指针&#xff09;LeetCode 5650. 执行交换操作后的最小…

win7优化设置_5项优化,至少提升20%!

Win7系统已经接近落幕的尾声了&#xff0c;不知大家是否早已做好准备了呢&#xff1f;很多朋友说win7不如win10好用&#xff0c;但马克思主义说到“新事物必将会取代旧事物”&#xff0c;也没必要一直坚守着win7的战线啦。自电脑升级了之后&#xff0c;便对win10系统进行了一些…

python实现两张图片横向和纵向拼接

本文实例为大家分享了python实现图片横向和纵向拼接的具体代码&#xff0c; 这里主要用Python扩展库pillow中Image对象的paste()方法把两张图片拼接起来供大家参考&#xff0c;具体内容如下&#xff1a; 一、代码&#xff1a; from PIL import Imagedef join(png1, png2, fl…

LeetCode 1203. 项目管理(两次拓扑排序)

文章目录1. 题目2. 解题1. 题目 公司共有 n 个项目和 m 个小组&#xff0c;每个项目要不无人接手&#xff0c;要不就由 m 个小组之一负责。 group[i] 表示第 i 个项目所属的小组&#xff0c;如果这个项目目前无人接手&#xff0c;那么 group[i] 就等于 -1。&#xff08;项目和…

BZOJ K大数查询(分治)(Zjoi2013)

题目链接&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id3110 Description 有N个位置&#xff0c;M个操作。操作有两种&#xff0c;每次操作如果是1 a b c的形式表示在第a个位置到第b个位置&#xff0c;每个位置加入一个数c如果是2 a b c形式&#xff0c;表示询…

为什么电脑不能打字_为什么不能用电脑验光仪测出来的度数直接配眼镜?

当今世界&#xff0c;科学技术爆炸式发展和进步&#xff0c;很多人问我&#xff1a;“电脑验光仪的准确度越来越高&#xff0c;会不会取代人工验光师&#xff1f;”我们这代人从小听着学着“科学技术是第一生产力”长大的&#xff0c;自然是技术崇拜者&#xff0c;自然的反应当…

前端DEMO:网络上流行的抖音罗盘

一、效果&#xff1a; 二、关于代码&#xff1a; CSS/demo.css代码&#xff1a; * {margin: 0;padding: 0; } html, body {width: 100%;height: 100%;background-color: black;overflow: hidden; } #clock {position: relative;width: 100%;height: 100%;background: black; }…

[Kaggle] Sentiment Analysis on Movie Reviews(BERT)

文章目录1. 预训练模型下载2. 数据集3. 加载预训练模型4. 提交结果练习地址&#xff1a;https://www.kaggle.com/c/sentiment-analysis-on-movie-reviews 相关博文&#xff1a; [Kaggle] Spam/Ham Email Classification 垃圾邮件分类&#xff08;BERT&#xff09; 本文使用 hu…

Qt利用avilib实现录屏功能_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...

内容概览1.openlayers6结合geoserver利用WFS服务实现图层编辑功能2.源代码demo下载效果图如下&#xff1a;本篇主要是参照openlayers6结合geoserver利用WFS服务实现图层新增功能(附源码下载)基础上实现的&#xff0c;openlayers6通过调用geoserver发布的地图服务WFS来达到图层编…