首页 > 其他分享 >分发糖果

分发糖果

时间:2023-10-17 22:14:27浏览次数:32  
标签:分发 ratings int 孩子 candy 糖果

题目

n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。

你需要按照以下要求,给这些孩子分发糖果:

  • 每个孩子至少分配到 1 个糖果。
  • 相邻两个孩子评分更高的孩子会获得更多的糖果。

请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目

示例 1:

输入:ratings = [1,0,2]
输出:5
解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。

示例 2:

输入:ratings = [1,2,2]
输出:4
解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。
     第三个孩子只得到 1 颗糖果,这满足题面中的两个条件。

提示:

  • n == ratings.length
  • 1 <= n <= 2 * 10^4
  • 0 <= ratings[i] <= 2 * 10^4

代码

class Solution {
    public int candy(int[] ratings) {
        int n=ratings.length;
        int[] candy=new int[n];
        int sum=0;
        candy[0]=1;
        for(int i=1;i<n;i++){
            if(ratings[i]>ratings[i-1])candy[i]=candy[i-1]+1;
            else{
                candy[i]=1;
            }
        }
        for(int i=n-2;i>=0;i--){
            if(candy[i]<=candy[i+1] && ratings[i]>ratings[i+1])candy[i]=candy[i+1]+1;
        }
        for(int i=0;i<n;i++)sum+=candy[i];
        return sum;
    }
}

注意点

我做题的时候运行提交了许多次,整体思路没错,但总是会有一些细节上的小问题,总结如下:

  1. 注意区分candy和ratings两个数组;
  2. 当相邻两个ratings一样时,其所分发的糖果可不同;
  3. 在第二个for循环中,candy的数值一直在变化,所以要注意判断条件。

标签:分发,ratings,int,孩子,candy,糖果
From: https://www.cnblogs.com/Enid/p/17770827.html

相关文章

  • #yyds干货盘点# LeetCode程序员面试金典:分发饼干
    1.简述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >=g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩......
  • 苹果企业签名为何要分发?
    苹果企业签名需要分发的原因是,它能够保证企业分发的应用程序是合法、可靠、安全、稳定的,并且能够在企业设备上正常运行。喵分发(www.catfenfa.com)通过企业签名,开发者可以将应用直接发布到用户的设备上,无需经过苹果的审核和上架AppStore,这样就能够更好地控制应用程序的适用范围和权......
  • 公平的糖果交换
    爱丽丝和鲍勃拥有不同总数量的糖果。给你两个数组 aliceSizes 和 bobSizes ,aliceSizes[i] 是爱丽丝拥有的第 i 盒糖果中的糖果数量,bobSizes[j] 是鲍勃拥有的第 j 盒糖果中的糖果数量。两人想要互相交换一盒糖果,这样在交换之后,他们就可以拥有相同总数量的糖果。一个人拥......
  • 2023牛客OI赛前集训营-提高组(第三场)C.分糖果
    2023牛客OI赛前集训营-提高组(第三场)C.分糖果目录2023牛客OI赛前集训营-提高组(第三场)C.分糖果题目大意做法对于\(30pts\)对于\(20pts\)对于\(100pts\)C-分糖果_2023牛客OI赛前集训营-提高组(第三场)(nowcoder.com)题目大意求前\(i(i\in[1,n])\)个数分成\(k\)个连续的区......
  • APP市场分发投放攻略
    APP市场的分发投放攻略包括以下几个步骤:确定目标用户:首先需要确定目标用户,包括用户群体、年龄、性别、地域、职业等特征。这有助于选择合适的投放渠道和制定相应的营销策略。选择应用市场:选择适合自己应用的应用市场进行投放。需要考虑应用市场的用户数量、用户画像、政策要求......
  • 当你有几个技术博客时,如何一键分发到多个技术博客平台?
    当你有几个技术博客时,如何一键分发到多个技术博客平台?如果你写博客,你一定会遇到这样一个问题,我在掘金写了一篇文章,想要发到其他的平台每次都有复制粘贴,还经常遇到格式不匹配、图片复制不过去等各种问题。可真是头大呀接下来就给你介绍一个非常王炸的工具,只要把你写的文章编辑一......
  • 喵分发平台助力iOS超级签名
    (喵分发)www.catfenfa.com平台可以帮助iOS进行超级签名,以下是一些建议:提供稳定的签名服务:超级签名需要使用个人开发者账号,并向其中添加苹果设备的UDID,生成签名用的描述文件,对应用进行签名。在签名过程中,需要确保使用的签名证书是稳定的,并定期更新证书密钥和吊销列表,以避免掉签问题......
  • 喵分发如何助力iOS应用顺利发布
    喵分发要助力iOS应用顺利发布,可以考虑以下几个方面:选择合适的签名服务商:签名服务是iOS应用发布过程中的重要环节。选择一家经验丰富、信誉良好的签名服务商,如喵分发公司,可以帮助您节省时间成本、降低应用发布难度,并为应用提供一定程度的安全保障。优化应用性能:在应用发布前,确保应......
  • 分发APP通常作用主要包括以下几个方面
    应用分发通常是指将应用程序或软件发布到用户可以访问的平台上,以便用户下载、安装和使用。其作用主要包括以下几个方面:方便用户获取和使用应用程序:通过应用分发,用户可以在各种应用商店、下载平台或官方网站等渠道上方便地搜索、下载、安装和管理各种应用程序,而无需手动从官方网站......
  • 糖果传递
    P2512[HAOI2008]糖果传递#include<cstdio>#include<algorithm>#include<cmath>usingnamespacestd;#defineEdfor(inti=h[x];~i;i=ne[i])#defineLs(i,l,r)for(inti=l;i<r;++i)#defineRs(i,l,r)for(inti=l;i>r;--i)#defineLe(i,l,r)......