思路:(1)先进行分析,找到符合一边的情况,再找符合另一边的情况。

(2)我们先确定右边评分大于左边的情况,即从前向后遍历。

此时局部最优,只要右边孩子的评分大于左边,右边孩子比左边孩子多一个糖果。全局最优,评分高的右孩子得到的比左孩子更多的糖果。(局部最优可以推出全局最优)。如果ratings[i] > ratings[i - 1],则candy[i] = candy[i-1] + 1.

(3)确定左孩子评分大于右边孩子,,要从后往前遍历,这样确保后面的糖果值可以利用到前面的糖果值。如果ratings[i] > ratings[i + 1],则这里我们贪心了,局部最优,取candy[i] 和 candy[i+1] + 1的最大值。保证第i个小孩的糖果数即大于左边也大于右边。

class Solution {public int candy(int[] ratings) {int[] candy = new int[ratings.length];for (int i = 0; i < candy.length; i++) {candy[i] = 1;}for (int i = 1; i < ratings.length; i++) {if (ratings[i] > ratings[i - 1]) {candy[i] = candy[i - 1] + 1;}}for (int i = ratings.length - 2; i >= 0; i--) {if (ratings[i] > ratings[i + 1]) {candy[i] = Math.max(candy[i],candy[i + 1] + 1);}}int count = 0;for (int i = 0; i < candy.length; i++) {count += candy[i];}return count;}
}

贪心算法解决(分糖果问题)相关推荐

  1. 部分背包的贪婪算法 java_使用JAVA实现算法——贪心算法解决背包问题

    packageBasePart;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException ...

  2. 用贪心算法解决马踏棋盘问题

    用贪心算法解决马踏棋盘问题 参考文章: (1)用贪心算法解决马踏棋盘问题 (2)https://www.cnblogs.com/Allen-win/p/7095293.html 备忘一下.

  3. 使用贪心算法解决最小生成树问题。

    使用贪心算法解决最小生成树问题. #include<iostream> #include<algorithm> using namespace std; const int M ...

  4. 背包问题 贪心算法 java_JS基于贪心算法解决背包问题

    前面我们分享了关于js使用贪心算法解决找零问题,本文我们接着为大家介绍JS基于贪心算法解决背包问题. 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做 ...

  5. C语言会场安排问题贪心算法,贪心算法解决会场安排问题多处最优服务次序问题(含源代码).doc...

    贪心算法解决会场安排问题多处最优服务次序问题(含源代码) 西 安年月日-,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源.每个活动i都有一个要求使用该资源 ...

  6. Python项目:The Ship Rendezvous Problem,利用贪心算法解决船舶交会问题

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Python利用贪心算法解决船舶交会问题 1 Introduction 2 Python Task Greedy Heuristic ...

  7. 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法

    本文实例讲述了C语言基于贪心算法解决装箱问题的方法.分享给大家供大家参考,具体如下: 问题描述: 有一些箱子,容量为V,同时有n个物品,每个物品有一个体积(小于等于箱子容量),要求将物品全部装入箱子中 ...

  8. 贪心算法解决活动安排-Python实现(排序+贪心选择)

    贪心算法解决活动安排 问题 问题概述 分析问题 解决问题 编程 编程流程以及数据类型选择 发现问题以及解决 最终实现 总结 程序缺陷以及完善 解题心路历程 问题 问题概述 设有n个活动的集合E={1, ...

  9. 贪心算法解决背包问题

    贪心算法解决背包问题 问题描述: 给定 n 个物品和一个容量为 C 的背包,请给出物品装入背包的方案,使得背包中物品的总价值 M 最大,并满足: 1.每个物品 I 的重量为 wi,价值为 vi. 2. ...

  10. 贪心算法解决最优装载问题c语言,贪心算法解决最优装载问题

    <贪心算法解决最优装载问题>由会员分享,可在线阅读,更多相关<贪心算法解决最优装载问题(4页珍藏版)>请在人人文库网上搜索. 1.author : Kevin Black/这个 ...

最新文章

  1. 微信架构 支付架构(上)
  2. js 字符串转换成数字的 三种方法
  3. Yii中创建自己的Widget
  4. eclipse 设置 默认编码为 utf-8
  5. 函数式编程 lambda表达式
  6. 强制禁用gitlab的双因子认证:Two-Factor Authentication
  7. ORDER BY NEWID()【原创】
  8. stl max函数_std :: max_element()函数以及C ++ STL中的示例
  9. php aes加密解密_JAVA实现PHP的openssl_encrypt方法
  10. LeetCode:62. 不同路径(python、c++)
  11. 简单介绍如何用Reporting Service制作报表
  12. 计算机组成原理第五版第四章课后答案,计算机组成原理第4章习题参考答案
  13. 永磁同步电机的原理介绍
  14. 阿里云负载均衡SLB简介
  15. 在线将PDF极速转换为图片
  16. es 创建索引 指定id_Elasticsearch创建索引流程
  17. 简单了解交换机原理与配置
  18. 阿里七年Java练习生,如今年薪50W,P7的大佬是怎么样的?
  19. C++ 项目实战:跨平台的文件与视频压缩解压工具的设计与实现
  20. 王菲语法11 动词(非谓语动词)

热门文章

  1. 如何使用 Android Studio 快速编写代码
  2. 理解C语言二维数组名
  3. 假茅台酒比例你知道吗
  4. 如何做一个靠谱的职场人
  5. 黑盒测试是用什么软件,黑盒测试的主要方法和常用的工具有什么?
  6. JS中ArrayBuffer、Uint8Array、Blob与文本字符之间的相互转换
  7. 读书笔记-展现自己的能力自信赢的最后的顺利
  8. 4阶,8阶“魔方阵”--解析
  9. Linux内核中_IO,_IOR,_IOW,_IOWR宏
  10. 经过整理的Modbus通讯协议详解(一)