[LeetCode] Candy
来源:互联网 发布:u3d编程是什么语言 编辑:程序博客网 时间:2024/06/05 05:59
There are N children standing in a line. Each child is assigned a rating value.
You are giving candies to these children subjected to the following requirements:
Each child must have at least one candy.
Children with a higher rating get more candies than their neighbors.
You are giving candies to these children subjected to the following requirements:
Each child must have at least one candy.
Children with a higher rating get more candies than their neighbors.
What is the minimum candies you must give?
思路:
从左往右扫描权重数组,保证权重大于左邻居的权重时得到的糖果也比座邻居大多,可以得到一个糖果数量数组。
从右往左扫描,满足右边邻居条件,得到另外一个糖果数量数组。
取每个孩子在两个糖果数量数组大的为最终值
public class Solution { public int candy(int[] ratings) { if (ratings == null) { return 0; } int len = ratings.length; if (len < 1) { return 0; } int[] leftArr = new int[len]; int[] rightArr = new int[len]; leftArr[0] = 1; for (int i = 1; i < len; i++) { if (ratings[i] > ratings[i - 1]) { leftArr[i] = leftArr[i - 1] + 1; } else { leftArr[i] = 1; } } rightArr[len - 1] = 1; for (int i = len - 2; i >= 0; i--) { if (ratings[i] > ratings[i + 1]) { rightArr[i] = rightArr[i + 1] + 1; } else { rightArr[i] = 1; } } int total = 0; for (int i = 0; i < len; i++) { total += (leftArr[i] > rightArr[i] ? leftArr[i] : rightArr[i]); } return total; }}
0 0
- Leetcode: Candy
- LeetCode:Candy
- [leetcode]Candy
- Leetcode: Candy
- 【leetcode】Candy
- LeetCode:Candy
- [LeetCode] Candy
- [LeetCode]Candy
- [LeetCode] Candy
- 【LeetCode】Candy
- LeetCode | Candy
- Leetcode: Candy
- Candy - LeetCode
- leetcode Candy
- LeetCode Candy
- candy leetcode
- Candy -- LeetCode
- [LeetCode] Candy
- 杭电 2200 Eddy's AC难题 (排列组合 公式)用double来表示64位
- 容器Collection
- hdu 4966 (最小树形图)
- HDOJ 题目1251统计难题(字典树,模板)
- Dom编程(添加、删除附件)
- [LeetCode] Candy
- 使用minus比对非LOB和LOB表的两个小脚本
- Ubuntu中root用户和user用户的相互切换
- WAS 节点不同步解决办法
- hdu 4968 Improving the GPA 策略 2014 Multi-University Training Contest 9-1009
- cin中函数的作用(第5章)
- Cyclone 黑金动力的IIC教程
- QTP 11.05下载地址及其汉化+破解
- hdoj 2089 不要62 【打表】