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

力扣 —— 分发糖果

分发糖果

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 * 104
  • 0 <= ratings[i] <= 2 * 104

思路

  1. 第一个for循环逻辑(只看左边):看我 比左边的小朋友的分是否要高 ,如果我比他高那么我就比他多一颗糖果。否则我得到一颗糖果。
  2. 第二个for循环逻辑(只看右边):看我 比右边的小朋友的分是否要高 ,如果我比他高那么我就要比他多一颗糖果。注意,此时需要判断根据第一步骤所得糖果和目前哪个多,取最大值。
  • 例子:

    One: [1,3,4,5,2]

    • 只看左边结果:[1,2,3,4,1]
    • 只看右边结果:[1,2,3,4,1]

    Two: [1,3,2,2,1]

    • 只看左边结果:[1,2,1,1,1]
    • 只看右边结果:[1,2,1,2,1]

答案

class Solution {public int candy(int[] ratings) {int len = ratings.length;int[] candyArr = new int[len];candyArr[0] = 1;// 只看左边for (int i = 1; i < len; i++) {if (ratings[i] > ratings[i - 1]) {candyArr[i] = candyArr[i - 1] + 1;} else {candyArr[i] = 1;}}// 再看右边for (int j = len - 2; j >= 0; j--) {if (ratings[j] > ratings[j + 1]) {candyArr[j] = Math.max(candyArr[j], (candyArr[j + 1] + 1));}}int sum = 0;for (int k = 0; k < len; k++) {sum += candyArr[k];}return sum;}
}

http://www.mrgr.cn/news/57954.html

相关文章:

  • 带电脑在外出差,可以将电脑屏幕投屏到家里的电视吗?
  • 使用ceph-csi把ceph-fs做为k8s的storageclass使用
  • 点云标注工具开发记录(五)之点云文件加载、视角转换
  • 多去跑一些AI产品经理面试,你就会发现…
  • 滴水逆向三期笔记与作业——02C语言——13 指针(3)(4)
  • MAC 电脑Office power point编辑的时候,显示“某些字体无法随演示文稿一起保存,仍然要保存演示文稿吗?”
  • geoserver解析元数据获取图层相关参数
  • 零基础Java第九期:一维数组(二)和二维数组
  • Java题集练习3
  • 一文带你入门Flink CDC
  • 十、Linux 故障排除专业案例分享
  • java抽象类和接口
  • 【Fargo】14: sockaddr_in 、 sockaddr 、sockaddr_storage 区别及转换
  • 论文思路 标书 水文
  • css知识点梳理
  • Zypher Network Layer3 主网上线,“宝藏方舟”活动是亮点
  • 深度学习_循环神经网络_预测平安中国股价(文末附带数据集下载链接, 长期有效, 如果有大佬愿意帮忙, 我先在这磕一个,感谢)
  • Vue弹窗用也可以直接调用Js方法了
  • 博饼代码【Python】
  • V4L2驱动框架
  • Unreal Engine5安装Niagara UI Renderer插件
  • phpstorm中使用FTP功能和自动上传配置介绍
  • 部署前后端分离若依项目--CentOS7Docker版
  • 数字隔离器市场崛起,老牌射频芯片企业“HOPERF”迎风启航
  • Android 两种方式实现类似水波扩散效果
  • Shell编程-小结