当前位置: 首页 > news >正文

【LeetCode:575. 分糖果+ 哈希表】

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 哈希表
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 575. 分糖果

⛲ 题目描述

Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。

医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。

给你一个长度为 n 的整数数组 candyType ,返回: Alice 在仅吃掉 n / 2 枚糖的情况下,可以吃到糖的 最多 种类数。

示例 1:

输入:candyType = [1,1,2,2,3,3]
输出:3
解释:Alice 只能吃 6 / 2 = 3 枚糖,由于只有 3 种糖,她可以每种吃一枚。
示例 2:

输入:candyType = [1,1,2,3]
输出:2
解释:Alice 只能吃 4 / 2 = 2 枚糖,不管她选择吃的种类是 [1,2]、[1,3] 还是 [2,3],她只能吃到两种不同类的糖。
示例 3:

输入:candyType = [6,6,6,6]
输出:1
解释:Alice 只能吃 4 / 2 = 2 枚糖,尽管她能吃 2 枚,但只能吃到 1 种糖。

提示:

n == candyType.length
2 <= n <= 104
n 是一个偶数
-105 <= candyType[i] <= 105

🌟 求解思路&实现代码&运行结果


⚡ 哈希表

🥦 求解思路
  1. 通过理解题目的意思,我们需要求解的是有多少种不同类型的糖果,在满足不超过n/2的条件下,我们通过哈希表去重元素后得到的元素个数和n/2取其中的最小值即可。
  2. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
class Solution {public int distributeCandies(int[] candyType) {int n = candyType.length;HashSet<Integer> set = new HashSet<>();for (int candy : candyType) {set.add(candy);}return Math.min(set.size(), n / 2);}
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

相关文章:

  • LNMP网站架构部署
  • SDL教程(二)——Qt+SDL播放器
  • 深度学习优化算法比较
  • Tailwindcss Flex 布局相关的样式类及其实战案例
  • Vue3 双向绑定
  • 【Qt】【模型视图架构】代理模型
  • 文件上传之使用一个属性接收多个文件
  • Python课设-学生信息管理系统
  • 申请高德地图API的Key并加以接口调用的方法
  • 深入分析 Android Service (完)
  • WordPress plugin MStore API SQL注入漏洞复现(CVE-2023-3077)
  • axios七大特性
  • Golang 协程和 Channel 的协同工作
  • Facebook开户 | Facebook二不限户
  • java —— 匿名内部类与 Lambda 表达式
  • 收藏网友的 源程序下载网
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 4个实用的微服务测试策略
  • Android框架之Volley
  • CSS 提示工具(Tooltip)
  • ECS应用管理最佳实践
  • emacs初体验
  • ERLANG 网工修炼笔记 ---- UDP
  • HTTP中GET与POST的区别 99%的错误认识
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JS题目及答案整理
  • js作用域和this的理解
  • linux安装openssl、swoole等扩展的具体步骤
  • Linux各目录及每个目录的详细介绍
  • sublime配置文件
  • WePY 在小程序性能调优上做出的探究
  • 包装类对象
  • 构造函数(constructor)与原型链(prototype)关系
  • 技术:超级实用的电脑小技巧
  • 面试遇到的一些题
  • 区块链共识机制优缺点对比都是什么
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 小李飞刀:SQL题目刷起来!
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​iOS安全加固方法及实现
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • # wps必须要登录激活才能使用吗?
  • #70结构体案例1(导师,学生,成绩)
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • (PADS学习)第二章:原理图绘制 第一部分
  • (web自动化测试+python)1
  • (分布式缓存)Redis持久化
  • (四)进入MySQL 【事务】
  • (算法)硬币问题
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)详解PHP处理密码的几种方式
  • (转)用.Net的File控件上传文件的解决方案