【LeetCode每日一题】——575.分糖果

news2024/12/23 17:36:18

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【题目提示】
  • 七【解题思路】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 哈希表

二【题目难度】

  • 简单

三【题目编号】

  • 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 = = c a n d y T y p e . l e n g t h n == candyType.length n==candyType.length
  • 2 < = n < = 1 0 4 2 <= n <= 10^4 2<=n<=104
  • n 是一个偶数 n 是一个偶数 n是一个偶数
  • − 1 0 5 < = c a n d y T y p e [ i ] < = 1 0 5 -10^5 <= candyType[i] <= 10^5 105<=candyType[i]<=105

七【解题思路】

  • 因为糖果的个数总共为 n n n个,所以根据题意,最后返回的结果不会超过 n 2 \frac{n}{2} 2n
  • 此外,设这些糖果一共有 m m m种,所以说返回的结果也不会超过 m m m
  • 如果 m ≤ n 2 m \leq \frac{n}{2} m2n,那么说明可以吃到重复的糖果,但是最多吃到 m m m种糖果,返回的结果就是 m m m
  • 如果 m ≥ n 2 m \geq \frac{n}{2} m2n,那么说明就算有再多的糖果种类,也只能吃到 n 2 \frac{n}{2} 2n颗糖果
  • 综上所述,最后返回的结果为: m i n ( m , n 2 ) min(m, \frac{n}{2}) min(m,2n)
  • 实现以上思路使用哈希表即可,比较简单,具体内容可参见下面的代码
  • 最后返回结果即可

八【时间频度】

  • 时间复杂度: O ( n ) O(n) O(n) n n n为传入的数组的长度
  • 空间复杂度: O ( n ) O(n) O(n) n n n为传入的数组的长度

九【代码实现】

  1. Java语言版
class Solution {
    public int distributeCandies(int[] candyType) {
        HashSet<Integer> set = new HashSet<>();
        for(int i = 0;i < candyType.length;i++){
            set.add(candyType[i]);
        }
        return Math.min(set.size(), candyType.length / 2);
    }
}
  1. C语言版
int distributeCandies(int* candyType, int candyTypeSize)
{
    int* map = (int*)calloc(200001, sizeof(int));
    for(int i = 0;i < candyTypeSize;i++)
    {
        map[candyType[i] + 100000]++;
    }
    int count = 0;
    for(int i = 0;i < 200001;i++)
    {
        if(map[i] > 0)
        {
            count++;
        }
    }
    return fmin(count, candyTypeSize / 2);
}
  1. Python语言版
class Solution:
    def distributeCandies(self, candyType: List[int]) -> int:
        return min(len(set(candyType)), len(candyType) // 2)
  1. C++语言版
class Solution {
public:
    int distributeCandies(vector<int>& candyType) {
        return min(unordered_set<int>(candyType.begin(), candyType.end()).size(), candyType.size() / 2);
    }
};

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

  3. Python语言版
    在这里插入图片描述

  4. C++语言版
    在这里插入图片描述

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

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

相关文章

​三江学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》

​三江学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》

【转】彻底搞明白 GB2312、GBK 、GB18030和UTF-8

日常工作的过程中&#xff0c;关于字符编码的问题经常让人头疼不已&#xff0c;这篇文章就来捋一捋关于 GB2312、GBK、GB18030 相关的知识 以及它们和 Unicode 的关系 简介 GB2312&#xff08;2个字节&#xff09; 1980 年&#xff0c;中国发布了第一个汉字编码标准&#xf…

明道云联合Kyligence结合示范性场景应用

案例背景 前言 国内大部分制造企业在经历疫情后&#xff0c;终于迎来了市场端的消费需求的恢复和增长&#xff0c;但如何在激烈的竞争中以更少投入&#xff0c;获得更高回报&#xff0c;在市场上获得一席生存之地&#xff0c;成为了悬在众多企业头上的达摩克利斯之剑。在市场…

手搓 LLM (不用rnn 不用attention 完全新思路)padding 实验

数据集地址 诗 实验过的几种策略 主体代码 import paddle import numpy as np from tqdm import tqdm import pandas as pd class EmMask(paddle.nn.Layer):def

力扣63.不同路径II(动态规划)

/*** author Limg* date 2022/08/09* 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。* 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。* 现在考虑网…

大厂容器云实践之路(三)

5-基于Kubernetes打造SAE容器云 目前SAE基于请求的架构 • 优点 - 进程内隔离&#xff0c;消耗资源最⼩ - ⽆感扩容&缩容&#xff0c;⽤户⽆成本 - Health&Redispatch&#xff0c;升级切换⽆成本 • 缺点 - ⽆法提供独⽴的namespace - ⽆法Build&Ship&Run ⽤…

数据质量:数据越好,模型就越好

如果数据不准确&#xff0c;模型就无法正常运行。虽然最终可能得到一个尚可应付的模型&#xff0c;但它的功能会不尽人意。可以说&#xff0c;数据质量是机器学习模型训练中的重中之重。无论为模型提供了多少数据&#xff0c;如果数据不适用&#xff0c;对改善机器模型的性能就…

网络电影购票系统代理商客户端开发(java开源)

一、背景介绍 随着互联网技术的不断发展&#xff0c;网络电影购票已经成为了人们日常生活中的一部分。然而&#xff0c;在电影购票市场中&#xff0c;代理商客户端的开发与搭建是一个关键环节。接下来将介绍如何使用Java开源技术来开发一个网络电影购票系统代理商客户端。 二、…

基于Spring Boot的网络在线学习网站的设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于Spring Boot的网络在线学习网站的设计与实现&#xff08;Javaspring bootMySQL&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java spri…

C语言笔试训练【第六天】

大家好&#xff0c;我是纪宁。今天是C语言笔试训练的第6天&#xff0c;加油&#xff01; 往期回顾&#xff1a; C语言笔试训练【第五天】 C语言笔试训练【第四天】 C语言笔试训练【第三天】 C语言笔试训练【第二天】 C语言笔试训练【第一天】 1、以下叙述中正确的是&…

2023年,App运行小游戏,可以玩出什么创意?

疫情过后&#xff0c;一地鸡毛。游戏行业的日子也不好过。来看看移动游戏收入&#xff1a;2022年&#xff0c;移动游戏收入达到920亿美元&#xff0c;同比下降6.4%。这告诉我们&#xff0c;2022年对移动游戏市场来说是一个小挫折。 但不管是下挫还是上升&#xff0c;移动游戏市…

第2章:模型评估与选择

经验误差与泛化误差 过拟合是核心问题。 过拟合是无法避免的&#xff0c;只能尽量去缓解。 每个算法都要思考&#xff0c;是怎么缓解过拟合的&#xff1f;缓解方法什么情况下会失效&#xff1f; 模型选择 评估方法 留出法 为什么不能太小&#xff1f; 因为Mx要用来逼近M100的结…

Cesium 积雪效果基于后处理方法

Cesium 积雪效果基于后处理方法 最后效果: this.effect new Cesium.PostProcessStage({name: "czm_snowCover",fragmentShader: snowCover,uniforms: {u_alpha: 1, // 积雪厚度, 0~1},});const stages viewer.scene.postProcessStages;stages.add(this.effect);根…

opencv基础49-图像轮廓02-矩特征cv2.moments()->(形状分析、物体检测、图像识别、匹配)

矩特征&#xff08;Moments Features&#xff09;是用于图像分析和模式识别的一种特征表示方法&#xff0c;用来描述图像的形状、几何特征和统计信息。矩特征可以用于识别图像中的对象、检测形状以及进行图像分类等任务。 矩特征通过计算图像像素的高阶矩来提取特征。这些矩可以…

vuejs 设计与实现 - 简单diff算法

DOM 复用与key的作用&#xff1a; DOM 复用什么时候可复用&#xff1f; key 属性就像虚拟节点的“身份证”号&#xff0c;只要两个虚拟节点的 type属性值和 key 属性值都相同&#xff0c;那么我们就认为它们是相同的&#xff0c;即可以进行 DOM 的复用。即 我们通过【移动】来…

C 语言的 pow() 函数

作用: Calculates x raised to the power of y. 函数原型: double pow( double x, double y ); Required Header: <math.h> Compatibility: ANSI Return Value pow returns the value of x y x^{y} xy. No error message is printed on overflow or underflow. Paramete…

【数据结构刷题】数组oj

前言:本文章是关于在力扣上面的数组相关面试题的讲解&#xff0c;包括:1.原地移除数组中所有的元素val&#xff0c;要求时间复杂度为O(N)&#xff0c;空间复杂度为O(1),2.删除排序数组中的重复项。3. 合并两个有序数组。一.原地移除数组中所有的元素val 题目: https://leetcod…

RT-Thread系列09——Finsh自定义命令

文章目录 1. 无参数命令2. 带参数命令2.1. 字符串参数2.2. 数字型参数 >>> 文章汇总&#xff08;有代码汇总&#xff09; <<< 目标&#xff1a;使用Finsh自定义命令。 RT-Thread studio&#xff0c;版本: 2.2.6。RT-Thread&#xff1a;标准版&#xff0c;4…

《Java-SE-第三十二章》之模拟实现HTTP服务器

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页&#xff1a;KC老衲爱尼姑的博客主页 博主的github&#xff0c;平常所写代码皆在于此 共勉&#xff1a;talk is cheap, show me the code 作者是爪哇岛的新手&#xff0c;水平很有限&…

Flask实现接口mock,安装及使用教程(一)

1、什么是接口mock 主要是针对单元测试的应用&#xff0c;它可以很方便的解除单元测试中各种依赖&#xff0c;大大的降低了编写单元测试的难度 2、什么是mock server 正常情况下&#xff1a;测试客户端——测试——> 被测系统 ——依赖——>外部服务依赖 在被测系统和…