贪心算法解决(分糖果问题)
思路:(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;}
}
贪心算法解决(分糖果问题)相关推荐
- 部分背包的贪婪算法 java_使用JAVA实现算法——贪心算法解决背包问题
packageBasePart;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException ...
- 用贪心算法解决马踏棋盘问题
用贪心算法解决马踏棋盘问题 参考文章: (1)用贪心算法解决马踏棋盘问题 (2)https://www.cnblogs.com/Allen-win/p/7095293.html 备忘一下.
- 使用贪心算法解决最小生成树问题。
使用贪心算法解决最小生成树问题. #include<iostream> #include<algorithm> using namespace std; const int M ...
- 背包问题 贪心算法 java_JS基于贪心算法解决背包问题
前面我们分享了关于js使用贪心算法解决找零问题,本文我们接着为大家介绍JS基于贪心算法解决背包问题. 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做 ...
- C语言会场安排问题贪心算法,贪心算法解决会场安排问题多处最优服务次序问题(含源代码).doc...
贪心算法解决会场安排问题多处最优服务次序问题(含源代码) 西 安年月日-,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源.每个活动i都有一个要求使用该资源 ...
- Python项目:The Ship Rendezvous Problem,利用贪心算法解决船舶交会问题
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Python利用贪心算法解决船舶交会问题 1 Introduction 2 Python Task Greedy Heuristic ...
- 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法
本文实例讲述了C语言基于贪心算法解决装箱问题的方法.分享给大家供大家参考,具体如下: 问题描述: 有一些箱子,容量为V,同时有n个物品,每个物品有一个体积(小于等于箱子容量),要求将物品全部装入箱子中 ...
- 贪心算法解决活动安排-Python实现(排序+贪心选择)
贪心算法解决活动安排 问题 问题概述 分析问题 解决问题 编程 编程流程以及数据类型选择 发现问题以及解决 最终实现 总结 程序缺陷以及完善 解题心路历程 问题 问题概述 设有n个活动的集合E={1, ...
- 贪心算法解决背包问题
贪心算法解决背包问题 问题描述: 给定 n 个物品和一个容量为 C 的背包,请给出物品装入背包的方案,使得背包中物品的总价值 M 最大,并满足: 1.每个物品 I 的重量为 wi,价值为 vi. 2. ...
- 贪心算法解决最优装载问题c语言,贪心算法解决最优装载问题
<贪心算法解决最优装载问题>由会员分享,可在线阅读,更多相关<贪心算法解决最优装载问题(4页珍藏版)>请在人人文库网上搜索. 1.author : Kevin Black/这个 ...
最新文章
- 微信架构 支付架构(上)
- js 字符串转换成数字的 三种方法
- Yii中创建自己的Widget
- eclipse 设置 默认编码为 utf-8
- 函数式编程 lambda表达式
- 强制禁用gitlab的双因子认证:Two-Factor Authentication
- ORDER BY NEWID()【原创】
- stl max函数_std :: max_element()函数以及C ++ STL中的示例
- php aes加密解密_JAVA实现PHP的openssl_encrypt方法
- LeetCode:62. 不同路径(python、c++)
- 简单介绍如何用Reporting Service制作报表
- 计算机组成原理第五版第四章课后答案,计算机组成原理第4章习题参考答案
- 永磁同步电机的原理介绍
- 阿里云负载均衡SLB简介
- 在线将PDF极速转换为图片
- es 创建索引 指定id_Elasticsearch创建索引流程
- 简单了解交换机原理与配置
- 阿里七年Java练习生,如今年薪50W,P7的大佬是怎么样的?
- C++ 项目实战:跨平台的文件与视频压缩解压工具的设计与实现
- 王菲语法11 动词(非谓语动词)