LeetCode.781 森林中的兔子

el/2023/6/3 15:42:27

原题

https://leetcode-cn.com/problems/rabbits-in-forest/

在这里插入图片描述

思路

先参考官方题解

设有x只兔子回答了y
则至少有x/(y+1)中不同的颜色
例如{3,3,3,3}4/(3+1)=1种不同的颜色
例如{3,3,3,3, 3,3,3,3}8/(3+1)=2种不同的颜色
例如{3,3,3,3, 3,3}6/(3+1)=1种不同的颜色,其实这时候应该是2种不同颜色的,所以需要向上取整
即:x/(y+1)为整数时,恰好就是x/(y+1)种不同的颜色
       x/(y+1)为小数时,应该是x/(y+1)+1种不同的颜色
归并以上两种情况,=> (x+y)/(y+1)种不同的颜色


每种颜色的兔子,最多有y+1只,故有式子: res += (x+y)/(y+1)*(y+1);


题解

package com.leetcode.code;import java.util.HashMap;
import java.util.Map;/*** @Description:* @ClassName: Code781* @Author: ZK* @Date: 2021/4/4 00:21* @Version: 1.0*/
public class Code781 {public static void main(String[] args) {
//        int[] answers = {1,1,1,2,2};int[] answers = {10,10,10};System.out.println(numRabbits(answers));}public static int numRabbits(int[] answers) {Map<Integer, Integer> map = new HashMap<>();int len = answers.length;for (int i = 0; i < len; i++) {int num = answers[i];map.put(num, map.getOrDefault(num, 0)+1);}int res = 0;for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
//            设有x只兔子回答了y
//            则至少有x/(y+1)中不同的颜色
//            例如{3,3,3,3},4/(3+1)=1种不同的颜色
//            例如{3,3,3,3, 3,3,3,3},8/(3+1)=2种不同的颜色
//            例如{3,3,3,3, 3,3},6/(3+1)=1种不同的颜色,其实这时候应该是2种不同颜色的,所以需要向上取整
//            即:x/(y+1)为整数时,恰好就是x/(y+1)种不同的颜色
//               x/(y+1)为小数时,应该是x/(y+1)+1种不同的颜色
//            归并以上两种情况,=> (x+y)/(y+1)种不同的颜色//            每种颜色的兔子,最多有y+1只,故有如下的式子int y = entry.getKey();int x = entry.getValue();res += (x+y)/(y+1)*(y+1);}return res;}}
http://www.ngui.cc/el/414812.html

相关文章

固定资产模块登陆错误

固定资产模块除了卡片管理模块可以使用外&#xff0c;其他所用功能均不能用&#xff0c;提示“由于互斥功能正在运行或者系统相关设置步骤未完成&#xff0c;此功能暂不可用” 清除一下数据库中的ufsystem中的ua_log,ua_task,ua_tasklog和fa_contorl这四个表中的数据。和删除软…

看信息化是如何在寺院实施的(三个和尚的故事同信息化建设)

一个和尚挑水吃、两个和尚抬水吃、三个和尚没水吃。总寺的方丈大人得知情况后&#xff0c;就派来了一名主持和一名书记&#xff0c;共同负责解决这一问题。主持上任后&#xff0c;发现问题的关键是管理不到位&#xff0c;于是就招聘一些和尚成立了寺庙管理部来制定分工流程。为…

2008年5月14日

在我们谈话时时刻都要提醒自己&#xff0c;要给自己留余地&#xff0c;使自己可进可退&#xff0c;这好比在战场上一样&#xff0c;进可攻&#xff0c;退可守&#xff0c;这样有了牢固的后方&#xff0c;出击对方&#xff0c;又可及是撤回&#xff0c;仍然处于主动地位。虽说未…

睡前六个必要动作,一觉睡到大天亮

失眠困扰着很多人,国际睡眠研究中心的专家告诉我们&#xff0c;在许多国家和地区都存在这种状况&#xff1a;一方面因为人们对失眠的巨大危害认识不够&#xff0c;特别是年轻人总认为自己“扛得住”“周末补补觉就行了”&#xff1b;另一方面&#xff0c;很多人在尝试过多种治疗…

12种貌似卫生的不卫生习惯

生活中有一些习惯&#xff0c;貌似卫生&#xff0c;实际上并不卫生&#xff0c;不仅不能保证身体健康&#xff0c;反而对身体有害。 1.白纸用于包食品为了白纸的“白”&#xff0c;许多厂家在生产过程中往往使用漂白剂&#xff0c;而漂白剂在与食品接触后&#xff0c;会引起一…