分发糖果:n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。
思路:先从前向后确定右孩子大于左孩子的情况,再从后先前确定左孩子大于右孩子的情况。如果从两边一起考虑会顾此失彼。

public int candy(int[] ratings) {int[] array = new int[ratings.length];for (int i = 0; i < array.length; i++) {array[i] = 1;            //最少有一个糖果}for (int i = 1; i < ratings.length; i++){ //从前向后if (ratings[i] > ratings[i - 1]){array[i] = array[i - 1] + 1;}}for (int i = ratings.length - 2; i >= 0; i--){if (ratings[i] > ratings[i + 1]){array[i] = Math.max(array[i], array[i + 1] + 1);  //取最大值}}int result = 0;for (int a :array) {result += a;}return result;}

每日一题——分发糖果相关推荐

  1. 135. 分发糖果 【每日一题】

    135. 分发糖果 思路 两次遍历,先从左到右计算出每个人的糖果数,这一步就是后一个比前一个大就在前一个基础上+1,不然置为1,从这个思路来来看,我们这一趟酒吧升序的给基本算好了,但是降序的我们现在全 ...

  2. LeetCode算法题0:分发糖果【贪心算法】

    文章目录 前言 一.题目 二.思路详解 三.搞点实际点儿的(C++实现) 1.略显粗糙的代码实现 2.稍显精致的代码实现 3.最终的代码实现 4.提交结果 总结 前言 本文记录自己在LeetCode上 ...

  3. 【每日一题】 888. 公平的糖果棒交换

    [每日一题] 888. 公平的糖果棒交换 避免每日太过咸鱼,一天搞定一道LeetCode算法题 一.题目描述 难度: 简单 爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大 ...

  4. Leetcode每日一题总目录(动态更新。。。)

    0. 概要 leecode每日一题(也可能多题)题解跟踪记录及总目录. 常用算法解题思路和技巧及数据结构: 预处理:数组排序(954),哈希表... 双指针法 682,125,905 单向链表 2 双 ...

  5. [每日一题]0:每日一题汇总

    每日一题 锻炼编程能力,每日尽量至少更新一道算法编程题,博客内主要更新学习C/C++.以及Linux的相关知识点,希望在记录学习过程的同时也能方便遇到相同问题的人,方便回顾复习,也希望能够与大家一起交 ...

  6. 通俗易懂:贪心算法(一):分配问题 (力扣455分发饼干 和135分发糖果)

    看完本文,可以顺便解决leetcode以下两个题目: 455.分发饼干(简单) 135.分发糖果(困难) 一.通俗易懂的 贪心算法 |思想 贪心算法就是采用贪心的策略,保证每一次的操作都是局部最优的, ...

  7. 【LeetCode】贪心算法--分发糖果(135)

    今日题目 老师想给孩子们分发糖果,有N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果.相邻的孩子中, ...

  8. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day34】—— 消息队列2

      大家好,我是陈哈哈,北漂五年.相信大家和我一样,都有一个大厂梦,作为一名资深Java选手,深知面试重要性,接下来我准备用100天时间,基于Java岗面试中的高频面试题,以每日3题的形式,带你过一遍 ...

  9. 安卓 每日一题 2020年3月问题及答案

    Android 3月2日题: onMeasure是干什么的? 答案: onMeasure方法主要是用于度量ViewGroup的子view的大小同时确定和保存自己ViewGroup的大小,将xml中的布 ...

最新文章

  1. 3.2亿人都在刷抖音,而优秀的人在看这几个公众号!
  2. php替换时 css中的图片不显示不出来,URL重写:CSS,JS和图像未加载
  3. iOS 11开发教程(十三)iOS11应用编辑界面添加视图
  4. 5GS 协议栈 — N1 接口的协议栈(NAS)
  5. 【学习】Android开入门教程
  6. Hi3516A开发--USB PCB 设计建议
  7. x86服务器当虚拟化的存储,X86服务器虚拟化实施方案.doc
  8. lombok的使用三部曲及使用中遇到的问题(持续更新)
  9. 未来计算机控制器趋势,未来DCS控制系统技术发展4大趋势
  10. Linux 文件特殊权限 SUID、SGID 与 SBIT
  11. QTextEdit 不允许输入文字
  12. Python项目开发公用方法--excel生成方法
  13. VIM编辑器使用的小技巧
  14. (13)Spring框架----Spring与Mybatis的框架整合(XML配置详解)
  15. 【有限元分析】圣维南原理
  16. [Sql2008错误问题] 配置系统未能初始化 0x84B10001
  17. 【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系
  18. iVMS-4200 Vs区别_76840红单足球预测 法甲 21:00 安格斯 VS 梅斯
  19. padStart与padEnd方法
  20. 程序:摄氏度和华氏度的相互转化

热门文章

  1. 超全!互联网大厂职级薪资表,全国各地互联网大厂分布(校招/社招/考研/考公)
  2. No Spring WebApplicationInitializer types detected on classpath
  3. 力扣OJ 剑指 Offer(1-30)
  4. 树莓派2使用360wifi ,小米wifi
  5. Chrome浏览器扩展插件的8种获利方式
  6. JAVA-打印星号三角形
  7. 中国计算机学会(CCF)——推荐国际学术会议和期刊目录
  8. 如何从8 道面试题中,看出浏览器渲染过程与性能优化
  9. 从零开始了解5G 纤亿通浅谈5G
  10. 80后年薪多少,才能摆脱中年危机?