首页 > 其他分享 >781.森林中的兔子

781.森林中的兔子

时间:2023-06-13 16:45:26浏览次数:41  
标签:ump res 回答 answers num 兔子 森林 781

问题描述

781. 森林中的兔子 (Medium)

森林中有未知数量的兔子。提问其中若干只兔子 "还有多少只兔子与你(指被提问的兔子)颜色相同?" ,将答案收集到一个整数数组 answers 中,其中 answers[i] 是第 i 只兔子的回答。 给你数组 answers ,返回森林中兔子的最少数量。 示例 1:

输入:answers = [1,1,2]
输出:5
解释:
两只回答了 "1" 的兔子可能有相同的颜色,设为红色。
之后回答了 "2" 的兔子不会是红色,否则他们的回答会相互矛盾。
设回答了 "2" 的兔子为蓝色。
此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。
因此森林中兔子的最少数量是 5 只:3 只回答的和 2 只没有回答的。

示例 2:

输入:answers = [10,10,10]
输出:11

提示:

  • 1 <= answers.length <= 1000
  • 0 <= answers[i] < 1000

解题思路

从题目中给出的例子我们可以发现,要想让兔子数量最小,那么要尽量让回答结果相同的兔子是同一个颜色的;

我们用一个哈希表unordered_map<int, int> ump来记录每种结果有多少只兔子回答了,key为回答结果,value是回答该结果的兔子的数量;

如果ump[i] > i + 1,说明这批兔子至少有不止一种颜色,颜色数为(ump[i] - 1) / (i + 1) + 1,每种颜色有i + 1个兔子。

代码

class Solution {
  public:
    int numRabbits(vector<int> &answers) {
        unordered_map<int, int> ump;
        int res = 0;
        for (auto &num : answers) {
            ump[num]++;
        }
        for (auto &num : ump) {
            // if (num.second % (num.first + 1) == 0) {
            //     res += num.second;
            // } else {
            //     res  += (num.second / (num.first + 1) + 1) * (num.first + 1);
            // }
            res += ((num.second - 1) / (num.first + 1) + 1) * (num.first + 1);
        }
        return res;
    }
};

标签:ump,res,回答,answers,num,兔子,森林,781
From: https://www.cnblogs.com/zwyyy456/p/17478047.html

相关文章

  • 随机森林RandomForest&梯度提升决策树GBDT
    模型亮点随机森林,初始测试集上评分为0.53,调参后测试集上评分为0.85梯度提升决策树,初始测试集上评分为0.56,调参后测试集上评分为0.88-----------------------------------------以下为模型具体实现-----------------------------------------Step1.数据读取importpandasa......
  • 51nod-1191 消灭兔子
    原题链接1191 消灭兔子题目来源: 2013腾讯马拉松赛第三场基准时间限制:1 秒空间限制:131072 KB分值: 40 难度:4级算法题 收藏 关注有N只兔子,每只有一个血量B[i],需要用箭杀死免子。有M种不同类型的箭可以选择,每种箭......
  • 0012.有监督学习之随机森林(Random Forest)
    一、概述随机森林:最为新兴起的、高度灵活的一种机器学习算法,随机森林(RandomForset,简称RF)拥有广泛的应用前景,从市场销售到医疗保健保险,既可以用来做市场销售模拟的建模,统计客户来源,保留和流失,也可用预测疾病的风险和病患者的易感性。随机森林算法是一种重要的基于bagging的集成......
  • matlab使用分位数随机森林(QRF)回归树检测异常值|附代码数据
    全文链接:http://tecdat.cn/?p=22160 最近我们被客户要求撰写关于分位数随机森林(QRF)回归树的研究报告,包括一些图形和统计输出。这个例子展示了如何使用分位数随机林来检测异常值分位数随机林可以检测到与给定X的Y的条件分布有关的异常值。离群值是一些观测值,它的位置离数据集......
  • Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|附代码
    图形和统计输出。在此数据集中,我们必须预测信贷的违约支付,并找出哪些变量是违约支付的最强预测因子?以及不同人口统计学变量的类别,拖欠还款的概率如何变化有25个变量:ID: 每个客户的IDLIMIT_BAL: 金额SEX: 性别(1=男,2=女)4.教育程度:(1=研究生,2=本科,3=高中,4=其他,5=未知)5.婚......
  • AI版女网红“半藏森林”上线,服务项目让人意想不到
    目前首批网红明星“AI克隆人”已提前上线,主营业务就是打造各种名人版AI聊天机器人,用户付费便可与之聊天。其后台报名参加AI克隆人的网红明星“全网粉丝总数已超过5亿”。该公司这波上线的网红明星AI克隆人,包括此前因“疑似插足他人恋情”,而备受争议的网红“半藏森林”。“半藏森......
  • 逛森林 题解
    P5344逛森林题目大意原题的题目大意已经很明确了要这个干嘛给定一些孤立点,将要进行两种操作:若两点之间不可以通过\(1\)类边连通,则在两点之间连双向\(1\)类边若\(u_1,v_1\)和\(u_2,v_2\)均可以通过\(1\)类边连通,则从\(u_1\tov_1\)的唯一路径上的所有点均向......
  • bzoj1001 [BeiJing2006]狼抓兔子(网络流dinic算法||最短路spfa)
    http://www.lydsy.com/JudgeOnline/problem.php?id=10011001:[BeiJing2006]狼抓兔子TimeLimit: 15Sec  MemoryLimit: 162MBSubmit: 24017  Solved: 6068[Submit][Status][Discuss]Description现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓......
  • python spark 随机森林入门demo
    class pyspark.mllib.tree.RandomForest[source]Learningalgorithmforarandomforestmodelforclassificationorregression.Newinversion1.2.0.supportedFeatureSubsetStrategies =('auto','all','sqrt','log2',......
  • 使用VAE、CNN encoder+孤立森林检测ssl加密异常流的初探——真是一个忧伤的故事!!!
    sslpayload取1024字节,然后使用VAE检测异常的ssl流。代码如下:fromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportStandardScalerimportnumpyasnpimporttensorflowastfimporttflearnfrommatplotlibimportpyplotaspltimport......